我有两个目标:
d1 = [ { "id": 3, "name": "test", "components": [ { "id": 1, "name": "test" }, { "id": 2, "name": "test2" } ] } ]
d2 = [ { "id": 4, "name": "test", "components": [ { "id": 2, "name": "test" }, { "id": 3, "name": "test"2 } ] } ]
如您所见,所有内容都保持不变,但根对象上的id
属性以及components
内部的id
属性都发生了更改
我正在使用DeepDiff
来比较d1
和d2
,并试图忽略id
对象的比较。然而,我不知道如何实现这一点。我尝试了以下方法,但似乎不起作用
excluded_paths = "root[\d+\]['id']"
diff = DeepDiff(d1, d2, exclude_paths=excluded_paths)
您可以尝试使用
exclude_obj_callback
:这将为每个包含字符串“id”的深层组件返回一个布尔值。您可能需要注意这一点,因为您可能会排除其他您不想排除的对象。解决这个问题的一种方法是设置不太通用的键值,例如“component_id”
相关问题 更多 >
编程相关推荐