【发布时间】:2013-07-22 01:03:15
【问题描述】:
我正在尝试比较两个文件,每行都是 JSON 格式。我需要比较两个文件之间的每一行并返回差异。由于文件太大,我无法读取和比较每一行。请建议我一些优化的方法。
【问题讨论】:
-
@Josh,并不是真正的重复,但如果 json 格式良好且一致,这可能会有所帮助
标签: python json file comparison
我正在尝试比较两个文件,每行都是 JSON 格式。我需要比较两个文件之间的每一行并返回差异。由于文件太大,我无法读取和比较每一行。请建议我一些优化的方法。
【问题讨论】:
标签: python json file comparison
两种可能的方式:
鉴于您的文件很大,最好使用第 1 点中描述的 difflib 技术。
根据我对以下答案的回复进行编辑:
经过一些研究,处理大数据负载的最佳方法似乎是以流式方式处理此负载。这样,我们可以确保快速处理数据,同时牢记软件的内存使用和性能。
请参阅this 链接,其中讨论了使用 Python 流式传输 JSON 数据对象。同样看看ijson - 这是python中基于迭代器的JSON解析/处理库。
希望这可以帮助您找到一个合适的库来解决您的用例
【讨论】:
这似乎是一个不错的开始:https://github.com/ZoomerAnalytics/jsondiff
>>> pip install jsondiff
>>> from jsondiff import diff
>>> diff({'a': 1, 'b': 2}, {'b': 3, 'c': 4}, syntax='symmetric')
{insert: {'c': 4}, 'b': [2, 3], delete: {'a': 1}}
我还将在当前项目中试用它,我将尝试在进行过程中保持更新和编辑。
【讨论】: