You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jq --stream流模式解析20GB大体积JSON并提取目标格式数据

问题原因

你当前使用的命令仅筛选出了匹配路径的原子流片段,每个time、value都是独立的流条目,没有完成嵌套结构的重组,因此会出现字段分散、无外层列表的问题。

解决方案

使用jq流模式自带的fromstream和路径截断能力重构目标结构,全程流处理不会全量加载文件,完全适配20GB大文件场景,命令如下:

jq --stream -n '
[
  inputs
  | select(.[0][0] == "tooldatareports" and .[0][2] == "tooldata" and .[0][4] == "data")
  | .[0] |= .[5:]
  | fromstream(.)
  | {data: .}
]
' data.json

命令说明

  • --stream:开启流模式逐片解析JSON,不会全量加载文件到内存
  • -n:不把输入作为单个JSON读取,配合inputs遍历所有流条目
  • select(...):过滤出所有路径匹配tooldatareports[N].tooldata[M].data的流条目,精准定位到你需要的data数组范围
  • .[0] |= .[5:]:截断路径前5段前缀,剩余路径为data数组内部的相对路径,用于后续结构重组
  • fromstream(.):把分散的流条目重组成完整的data数组结构
  • {data: .}:把每个重构好的data数组包装成要求的字典格式
  • 最外层的[]:把所有生成的字典收集为外层列表,完全匹配你需要的输出格式

内容的提问来源于stack exchange,提问作者CYC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:30:03