gpt4 book ai didi

python - python中的多级JSON差异

转载 作者:行者123 更新时间:2023-11-28 20:05:38 25 4
gpt4 key购买 nike

如果已经回答,请链接我回答,我的问题是我想获得无序的多级 json 的差异。

x=json.loads('''[{"y":2,"x":1},{"x":3,"y":4}]''')
y=json.loads('''[{"x":1,"y":2},{"x":3,"y":4}]''')
z=json.loads('''[{"x":3,"y":4},{"x":1,"y":2}]''')

import json_tools as jt
import json_delta as jd


print jt.diff(y,z)
print jd.diff(y,z)
print y==z
print x==y

输出是

[{'prev': 2, 'value': 4, 'replace': u'/0/y'}, {'prev': 1, 'value': 3, 'replace': u'/0/x'}, {'prev': 4, 'value': 2, 'replace': u'/1/y'}, {'prev': 3, 'value': 1, 'replace': u'/1/x'}]
[[[2], {u'y': 2, u'x': 1}], [[0]]]
False
True

我的问题是如何让 y 和 z 相等,或者是否存在实际差异取决于 JSON 的非顺序。

一种无序的字典列表,但我正在寻找一些水平证明的东西,即列表/字典的字典列表/字典......

最佳答案

检查这个 python 库 jsondiff ,这将帮助您识别差异

import json

import jsondiff

json1 = json.loads(
'{"isDynamic": false, "name": "", "value": "SID:<sid>", "description": "instance","argsOrder": 1,"isMultiSelect": false}')

json2 = json.loads(
'{ "name": "", "value": "SID:<sid>","isDynamic": false, "description": "instance","argsOrder": 1,"isMultiSelect": false}')

res = jsondiff.diff(json1, json2)
if res:
print("Diff found")
else:
print("Same")

关于python - python中的多级JSON差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28838170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com