我把一个dict转换成一个dict,看起来是这样的:第一个outter dict的键是object,内部dict的键是objects的参数。一个对象是引用,我需要将所有对象的所有参数的值与该引用对象进行比较,如果有差异,则打印它,如果没有差异,则不执行任何操作。Dict看起来像这样:
{'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是我在上面复制的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})
下一个问题是:当引用对象根本没有一些参数,但是其他对象有一些参数时,这个方法很有效,但是当引用对象有一些参数而其他对象没有时,就不会发生什么,也不会找不到它。你知道吗
下面是一个更详细的答案。查看这是否适用于检查键和值。你知道吗
您可以这样尝试:
我知道如何对照引用对象进行检查,但是引用对象可能有其他键。你知道吗
所以我会添加一个测试来检查钥匙是否相同。我在这里打印,但你可以记录到字典或错误列表。你知道吗
如果将两个列表转换为集合,然后减去它们,则可以更好地计算多余或缺少的键。你知道吗
相关问题 更多 >
编程相关推荐