我试图使用一个库:Datadiff,但 diff 的输出似乎并不一致。我正在分析两个 json,用它们制作一些字典,然后我正在比较字典。但是对于第一个文件,输出显示所有已更改的对象,而在第二个文件中,输出是行中的,因此显示了不同的 json 行,但不是整个更改的对象在 diff 中仍然是一个谜. 我对这种行为感到很困惑,你能解释一下或解决这个问题吗?下面是代码:
out = datadiff.diff(t[0].get("key"),t[1].get("key"))
if options.get("key2") != None:
out = scorecheck(out,options.get("key2"))
if checkdiff(str(out)):
f.write("Feelings:<br/>")
printdiff(f, str(out))
第一个文件的差异输出:
+{u'origin': u'VIRTUAL', u'score': 1, u'type': u'PLACES', u'name': u'comune di Roma'},
+{u'origin': u'VIRTUAL', u'score': 1, u'type': u'PLACES', u'name': u'provincia di Roma'},
与第二个文件的区别:
-u'position': 1,:
u'score': 1,:
u'score': 1,:
u'score': 1,:
我正在尝试选择所有包含分数 1 的“对象”,而不仅仅是在 json 中显示分数 1 的行。所以对我来说第一个输出没问题,第二个没用。