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

如何用jq将大JSON Lines文件转为带表头的CSV(不使用slurp)

超大JSON Lines转带表头CSV的最优jq方案

核心思路

针对超大JSON Lines文件(无法全量加载到内存),通过固定字段顺序定义+逐行处理的方式,生成符合要求的带表头CSV,同时避免冗余判断和键顺序依赖。

最优jq命令

jq -nr '
  # 自定义需要输出的字段顺序,根据实际结构调整
  $fields = ["id", "name", "age", "email"]
  # 输出CSV表头
  | $fields | @csv
  # 逐行处理输入的JSON对象,提取对应字段值并转为CSV行
  , (inputs | [ $fields[] | .[.] ] | @csv)
' input.jsonl > output.csv

方案优势

  • 内存友好:不使用slurp参数,逐行读取处理,完全适配超大文件场景
  • 字段顺序可控:通过$fields数组直接指定输出顺序,不受原JSON键顺序影响
  • 代码简洁:用[ $fields[] | .[.] ]批量提取字段值,无需冗余的条件判断语句
  • 表头仅输出一次:通过, (inputs | ...)将表头与后续数据行串联,保证格式正确性

示例验证

输入(input.jsonl)

{"name": "Alice", "id": 1, "email": "alice@example.com", "age": 30}
{"id": 2, "age": 25, "name": "Bob", "email": "bob@example.com"}

输出(output.csv)

"id","name","age","email"
"1","Alice","30","alice@example.com"
"2","Bob","25","bob@example.com"

内容的提问来源于stack exchange,提问作者Summer-Sky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:10:12