【问题标题】:Generate a diff report on json in python在 python 中生成关于 json 的差异报告
【发布时间】:2020-02-17 17:23:57
【问题描述】:

我在 python 中有一个回归测试脚本,它接收来自 ground truth 文件的 JSON 和来自 rest api 的 JSON,如果它们不匹配,我想生成差异。该脚本在python中。我可以遍历 JSON 并逐行比较,但挑战是可以在末尾或开头或中间附加新元素。然后逐行可能会变得复杂。如果传递了两个 JSON 字符串,是否有一些库可以吐出差异。

【问题讨论】:

标签: python json python-3.x regression diff


【解决方案1】:

您可以查看deepdiff 包。这是一个例子:

from deepdiff import DeepDiff

t1 = {'a': 10, 'b': 20}
t2 = {'a': 10, 'b': 22}
ddiff = DeepDiff(t1, t2, ignore_order=True)
print(ddiff)

打印出来:

{'values_changed': {"root['b']": {'new_value': 22, 'old_value': 20}}}

【讨论】:

  • 我看到一个问题:Python 3.6.4 (v3.6.4:d48ecebad5, Dec 18 2017, 21:07:28) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3) ] on darwin 输入“help”、“copyright”、“credits”或“license”以获取更多信息。 >>> from deepdiff import DeepDiff Traceback(最近一次调用最后):文件“”,第 1 行,在 文件“/Users/rchikka@us.ibm.com/Downloads/RegressionTesting/deepdiff.py”中,第 1 行,在 from deepdiff import DeepDiff ImportError: cannot import name 'DeepDiff'
  • @javaMan 将您的 deepdiff.py 文件名更改为其他名称。这就是这个导入错误的原因。
猜你喜欢
  • 1970-01-01
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 2014-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多