我是python的新手并编写了一些代码来进行这种比较,但它的效率非常低,而且长达150行。
以下是两个要比较的示例词(实际上它们要长得多,但并不比这更深,只有这些数据类型)。
dict1 = {
'id': '1',
'file': 'filename1',
'namespace1': {'key1': 'val1',
'key2': 'val2',
'key3': 'val3'},
'namespace2': {'key4': ['listval1', 'listval2', 'listval3'],
'key5': 'val5'}
}
dict2 = {
'id': '2',
'file': 'filename2',
'namespace1': {'key1': 'val1',
'key2': 'val2',
'key3': 'val7'},
'namespace2': {'key4': ['listval1', 'listval2', 'listval7'],
'key5': 'val5'},
'namespace3': 'key6'
}
有没有有效的方法来比较这两个字典并存储显示的差异?我真的很难过这个......我认为正确的方法是转换成套装并递归比较,但我不确定它是否能够正常工作。任何帮助深表感谢。谢谢!
答案 0 :(得分:2)
我认为你需要通过“比较”定义更准确。 也许尝试使用deepdiff包:
pip install deepdiff
使用如下:
from deepdiff import DeepDiff
print DeepDiff(dict1, dict2)
它准确显示了这两个词之间的变化