Ich habe einen JSON dict wie folgt aus:Iterate über verschachtelte Schlüssel in Python dict und brechen beim ersten Auftreten
"{
"a":1,
"b":{
"b1":False,
"b2":{"b21": 2, "b22":8}
},
"c": {
"b1":True,
"b2":2,
"b4":8
},
"d":{
"b1":False,
"d1":89
}
}"
ich den Wert des Schlüssels "b1"
im Wörterbuch überprüfen möchten, und bekommen, wenn ich Finde b1=True
. Wenn ich das gesamte dict (verschachtelte Schlüssel eingeschlossen) überprüfe und ich b1 = True nicht finde, möchte ich False zurückgeben. Für das obige Beispiel sollte meine Funktion True zurückgeben.
Grundsätzlich möchte ich den Code beim ersten Auftreten von b1=True
brechen und iterieren über alle Schlüssel des dict (in allen Ebenen), und wenn dieses Vorkommen nicht existiert, geben Sie False zurück.
Dies ist, was ich kam mit:
def isb1True(jsonDoc):
found = False
for (key,value) in jsonDoc.iteritems():
if key=='b1':
if value==True :
found=True
break
else:
isb1True(value)
return found
Mein Code immer wieder False
.
Vielen Dank! Dies löste mein Problem: D (ich musste es leicht ändern, weil ich doppelte Schlüssel habe und die Art, wie ich damit umgehe, ist, dass ich eine Liste von Werten für jeden duplizierten Schlüssel habe;)) – Samiella