を破る、私は次のようなJSONの辞書を持っている:Pythonの辞書では、ネストされたキーを反復し、最初の出現に
"{
"a":1,
"b":{
"b1":False,
"b2":{"b21": 2, "b22":8}
},
"c": {
"b1":True,
"b2":2,
"b4":8
},
"d":{
"b1":False,
"d1":89
}
}"
私は辞書で、キー"b1"
の値をチェックし、ときに私出たいですb1=True
を見つけてください。 dict(入れ子になったキーを含む)全体をチェックしても、b1 = Trueが見つからない場合は、Falseを返すようにします。上の例では、my関数はTrueを返します。
基本的には、b1=True
の最初のオカレンスでコードを分割し、(すべてのレベルで)dictのすべてのキーに対して反復処理を行い、このオカレンスが存在しない場合はFalseを返します。
これは私が思いついたものです:
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
私のコードは常にFalse
を返します。
ありがとうございました!これは私の問題を解決しました:D(キーが重複しているために少し修正しなければならず、扱う方法はそれぞれの重複したキーの値のリストを持っています) – Samiella