【发布时间】:2015-08-24 12:15:15
【问题描述】:
我有相对较小的对象的巨大 (~7GB) json 数组。
有没有相对简单的方法来过滤这些对象而不将整个文件加载到内存中?
--stream 选项看起来很合适,但我不知道如何将 [path,value] 的流折叠到原始对象。
【问题讨论】:
-
小世界。我刚刚遇到了类似的问题。出于兴趣,您的 json 文件中的空格是可预测的吗?例如,大型 json 数组通常每个顶级数组项使用一行?
-
如果文件已经定期格式化,那么您可能需要考虑使用文本整理工具将文件转换为小对象流,然后可以使用 jq 进行处理。如果文件尚未适当格式化,那么如果只对整个文件使用一次 jq 是可以接受的,那么您可以考虑使用
jq .格式化 JSON 以便于转换成这样的流。