私はdictにdictを持っています。次のようになります。最初のoutter dictのキーはオブジェクトであり、内部dictsのキーはオブジェクトのパラメータです。 1つのオブジェクトは参照であり、すべてのオブジェクトのすべてのパラメータの値をその1つの参照オブジェクトと比較する必要があります。差異がある場合はそれを出力し、差分がない場合は何も行いません。 dictのは、次のようになります。Python辞書の比較
{'object-1301': {'act1': 'false',
'act1x': 'true',
'act': 'false',
'actAdv': 'false',
'actAe': 'false',
'actArp': 'false',},
'object-218': {'act1': 'true',
'act1x': 'false',
'act': 'false',
'actAdv': 'false',
'actAe': 'true',
'actArt': 'false',},
...
}
コードrefは参照オブジェクトです私はこれまでされ、dictのは、私が上記コピーされた辞書できました:
main_dif = {}
for key, value in dict.iteritems():
dif_k = {}
for k, v in value.iteritems():
try:
a = ref[k]
except:
a = None
if a != v:
dif_k.update({k:v})
main_dif.update({key:dif_k})
私が持っている問題は次です:とき参照オブジェクトすべてのパラメータを持っていないが、いくつかの他のオブジェクトが、これはうまく動作しますが、参照オブジェクトが持っていて、他のオブジェクトがない場合、何も起こりません、それを見つけることができません。
。あなたの例の最初の行にアクセントがありません。また、 'try' /' except'構造を 'ref.get(k、None)'で置き換えることもできます。最後に、文法はちょっとした注意が必要です。 –
@Tom de Geus 私は自分の質問を編集しました。私は行を欠場しない、なぜあなたはそれを考えるのですか? – jovicbg
あなたは何をやろうとしていますか? – manvi77