标签: deep-diff

从 DeepDiff 结果构建 python dict

我有一个 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)

如何做到这一点?

python dictionary deep-diff

5
推荐指数
1
解决办法
1426
查看次数

如何使 DeepDiff 输出可读?

DeepDiff 结果如下所示:

{'dictionary_item_added': [root[5], root[6]], 'dictionary_item_removed': [root[4]]}
Run Code Online (Sandbox Code Playgroud)

对于对更改的人工审查,这仅适用于小示例。我需要类似 GitHub 提交和拉取请求中显示的代码文件差异,但对于 json。

所以这是我的问题:

如何将 DeepDiff 输出转换为类似的内容人类可读的差异

为什么我不想放弃 DeepDiff 并使用 git-diff

与代码不同,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)

我正在寻找的具体内容

我希望看到已更改的值中突出显示的单词,如下所示:

与突出显示的单词进行比较 有一些差异:

  • 这是代码示例,但它也适用于 json
  • 我只需要这个用于支持 ANSI 颜色的基于文本的终端
  • 我正在研究如何在 Python 或 C++ 中执行此操作
  • GitHub 屏幕截图有我喜欢的想法:显示带有 - / + 的行并突出显示每行中的单词

c++ python deep-diff

3
推荐指数
1
解决办法
2809
查看次数

标签 统计

deep-diff ×2

python ×2

c++ ×1

dictionary ×1