python - 嵌套 JSON 上的 DeepDiff
问题描述
我想找出两个 JSON 之间的区别,但是,当我尝试使用 DeepDiff 方法时,它什么也没找到。
from deepdiff import DeepDiff
item1 = {
'__PythonResult__Modules': {
'b': {
'c':
['foo']
}
}
}
item2 = {
"__PythonResult__Modules" : {
"global" : {
"views" : {
"from_python" : {
"QDjl" : ["llll"]
}
}
}
}
}
DeepDiff(item1, item2)
我使用 Python 3.8 和 DeepDiff 5.5.0。你有想法吗 ?
谢谢,
解决方案
默认情况下,DeepDiff 忽略私有变量。这些是以双下划线开头的字段名称。
您可以通过在下划线开头添加一个字母来测试这一点。
无论如何要进行比较,只需将参数设置ignore_private_variables
为False
那是:
print(DeepDiff(item1, item2, ignore_private_variables=False))
输出:
{'dictionary_item_added': [root['__PythonResult__Modules']['global']], 'dictionary_item_removed': [root['__PythonResult__Modules']['b']]}
推荐阅读
- r - 将 dan 替换为而不是 daniel
- python - google-cloud-language、pandas 和 conda 之间是否存在冲突?
- python - for循环可迭代不覆盖原始
- python - 为什么 Keras ImageDataGenerator 会抛出内存错误?
- leaflet - Leaflet markercluster 组和图层控制不起作用
- parsing - 将传感器的二进制输出解析为浮点数
- java - 给定 inDigits 的基本否定
- javascript - 在 Chrome ion-modal-view 长内容打印不允许所有页面
- android - 移动推送通知使用什么协议?
- json - 您在哪里为 Parse Server 插入指针权限 Json?