嵌套 JSON 上的 DeepDiff

问题描述 投票:0回答:1

我想找到两个 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。 你有想法吗?

谢谢你,

python json dictionary python-deepdiff
1个回答
4
投票

默认情况下 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']]}
© www.soinside.com 2019 - 2024. All rights reserved.