python - 比较2个字典与不同类型的嵌套值的好方法?

时间:2017-03-03 00:00:58

标签: python-2.7 dictionary

我是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'
}

有没有有效的方法来比较这两个字典并存储显示的差异?我真的很难过这个......我认为正确的方法是转换成套装并递归比较,但我不确定它是否能够正常工作。任何帮助深表感谢。谢谢!

1 个答案:

答案 0 :(得分:2)

我认为你需要通过“比较”定义更准确。 也许尝试使用deepdiff包:

pip install deepdiff

使用如下:

from deepdiff import DeepDiff
print DeepDiff(dict1, dict2)

它准确显示了这两个词之间的变化

相关问题