You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DeepDiff比对两个嵌套JSON时无差异输出的问题咨询

原因

DeepDiff 5.5.0版本默认开启ignore_private_attributes配置,该配置为True时会自动忽略所有键名以双下划线__开头的属性。你测试用的两个JSON顶级键__PythonResult__Modules符合双下划线开头规则,DeepDiff比较时直接跳过了该键下的全部内容,因此返回无差异结果。

解决方案

调用DeepDiff时显式关闭私有属性忽略开关即可正常识别差异,修改后的代码如下:

from deepdiff import DeepDiff

item1 = {
    '__PythonResult__Modules': {
        'b': {
            'c': 
            ['foo']
        }
    }
}
item2 = {
    "__PythonResult__Modules" : {
        "global" : {
            "views" : {
                "from_python" :  {
                    "QDjl" : ["llll"]
                }
            }

        }
    }
}
diff_result = DeepDiff(item1, item2, ignore_private_attributes=False)
print(diff_result)

如果你的场景中仍需要忽略其他私有属性,仅需保留当前键的比较,可通过exclude_regex_paths参数自定义排除规则,覆盖默认的正则匹配逻辑。

内容的提问来源于stack exchange,提问作者Flo Cp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:36:03