我正在使用一个库来推断两个 json 文件之间的差异。我的代码将它们加载到字典中,然后使用datadiff来获取两种数据结构之间的差异。问题是我想进一步处理以下输出:
datadiff.diff
制作两个数据结构中发现的差异的 html。为了做到这一点,我必须处理命令的输出并将其分成几行。然后,如果行以 + 开头,我知道输出必须引用到比较的第二个文件,如果行以 - 开头,那么我必须将其归因于第一个文件。我的代码:
out = datadiff.diff(t[0].get("key"),t[1].get("key"))
for line in out:
if str(line).startswith("+"):
f.write(str(line)+"<br/>")
if str(line).startswith("-"):
f.write(str(line)+"<br/>")
这段代码给我一个 TypeError:
for line in out:
TypeError: 'DataDiff' object is not iterable
我可以将整个 datadiff.diff 转换为一个字符串,但随后我必须以某种方式拆分它以获取所有行,因为它被转换为单行字符串:
out = str(datadiff.diff(t[0].get("key"),t[1].get("key")))+"<br/>"
数据差异输出:
diff in key:
--- a
+++ b
[
@@ -0,1 +0,1 @@
-{u'origin': u'NORMAL', u'score': 100, u'type': u'FEELINGS', u'name': u'sentiment negativo', u'children': [u'reato']},
{u'origin': u'NORMAL', u'score': 100, u'type': u'FEELINGS', u'name': u'sentiment neg', u'children': [u'reato']},
+{u'origin': u'NORMAL', u'score': 50, u'type': u'FEELINGS', u'name': u'sentiment negativo', u'children': [u'reato']},
]