~Python-Go- 比较两个 JSON 文件之间的差异 - 花酒锄作田 - 博客园
前言
前段时间同事说他有个需求是比较两个 JSON 文件之间的差异点,身为 DB 大神的同事用 SQL 实现了这个需求,让只会 CRUD 的我直呼神乎其技。当时用一个一千万多字符、四十多万行的 JSON 文件来测试,SQL 查出来要 9 秒。周六有时间,拜读了下同事的 SQL,打算用 Python 和 Go 实现下试试。
测试的 json 文件如下,其中 dst.json 从 src.json 文件复制而来,随便找了个地方改了下。单文件为 409510 行,字符数为 11473154 左右。
第三方库 jsondiff
先在网上搜了下有没有现成的第三方库,找到一个叫 jsondiff 的第三方 python 库。使用 pip 安装后,用法如下
运行测试
运行时间太长了,接近半小时,肯定不能拿给别人用。
Python- 仅用标准库
只试了 jsondiff 这一个第三方库,接下来打算直接参考同事那个 SQL 的思路,自己只用标准库实现一个。
运行测试
只要 0.46 秒就能比较出来差异点,单论比较性能来说,比 jsondiff 要好很多。
Go 实现
再换 go 来实现个命令行工具,同样只需要用标准库即可。
运行测试,速度同样很快。