我有一个 DeepDiff 结果,它是通过比较两个 JSON 文件获得的。我必须从 deepdiff 结果构建一个 python 字典,如下所示。
json1 = {"spark": {"ttl":3, "poll":34}}
json2 = {"spark": {"ttl":3, "poll":34, "toll":23}, "cion": 34}
deepdiffresult = {'dictionary_item_added': {"root['spark']['toll']", "root['cion']"}}
expecteddict = {"spark" : {"toll":23}, "cion":34}
Run Code Online (Sandbox Code Playgroud)
如何做到这一点?
DeepDiff 结果如下所示:
{'dictionary_item_added': [root[5], root[6]], 'dictionary_item_removed': [root[4]]}
Run Code Online (Sandbox Code Playgroud)
对于对更改的人工审查,这仅适用于小示例。我需要类似 GitHub 提交和拉取请求中显示的代码文件差异,但对于 json。
所以这是我的问题:
与代码不同,json 不关心格式,也不关心字典中键的顺序。
我可以通过预先排序 json 中的所有字典然后将它们与 git-diff 进行比较来避免不使用 DeepDiff。然而,将文件写入磁盘并取出git-diff是很混乱的。只是在做DeepDiff(t1, t2)就很干净。
我正在看的例子是:
{'dictionary_item_added': [root[5], root[6]], 'dictionary_item_removed': [root[4]]}
Run Code Online (Sandbox Code Playgroud)
我希望看到已更改的值中突出显示的单词,如下所示: