,请查看文档
如何创建两个JSON对象的差异,以使它们以手动差异格式进行,可以发送到评论板?我需要从python脚本内部生成差异。我认为使用" diff file1 file2"命令行实用程序生成手册差异。我可以使用fifflib生成类似的评论板兼容差异吗?还是我需要使用另一个库?谢谢!
使用difflib:
def show_diff(seqm):
output= []
for opcode, a0, a1, b0, b1 in seqm.get_opcodes():
if opcode == 'equal':
output.append(seqm.a[a0:a1])
elif opcode == 'insert':
output.append("<ins>" + seqm.b[b0:b1] + "</ins>")
elif opcode == 'delete':
output.append("<del>" + seqm.a[a0:a1] + "</del>")
elif opcode == 'replace':
output.append("<del>" + seqm.a[a0:a1] + "</del>" + "<ins>" + seqm.b[b0:b1] + "</ins>" )
else:
raise RuntimeError, "Unexpected opcode"
return ''.join(output)
在您的情况下,您比较了JSON文件(我只是使用虚拟文本):
In [4]: sm = difflib.SequenceMatcher(None, 'hello', 'hello world')
In [6]: diff = show_diff(sm)
In [7]: diff
Out[7]: 'hello<ins> world</ins>'
如果您需要与Difflib不同的输出
我只是想在进行diff之前,您应该重新格式化JSON对象。