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

如何从包含JSON列的CSV文件中提取指定数据?

提取CSV中JSON字段的指定子对象键并输出为CSV

方法1:直接用jq处理(简单场景,name字段无逗号)

如果你的CSV每行仅含两个字段,且第一个字段(名称)不含逗号,可直接用jq完成拆分与解析:

jq -Rr 'split(",", 1) as [$name, $json] | 
  "\($name),", 
  ($json | fromjson | .field2.subfield.subfield2 | keys | join(" "))' input.csv

命令说明:

  • -R:将输入视为原始字符串(而非JSON格式)
  • -r:输出原始文本,避免自动添加引号
  • split(",", 1):按第一个逗号拆分字符串,分离出名称和JSON内容
  • fromjson:将JSON字符串解析为可操作的JSON对象
  • .field2.subfield.subfield2 | keys:提取subfield2下的所有键名
  • join(" "):把键名用空格拼接成单个字符串
  • 最后通过字符串拼接输出你需要的换行格式

方法2:用csvkit+jq(通用场景,支持含逗号的name字段)

如果name字段可能包含逗号,需要用专业CSV解析器csvkit确保字段拆分正确:

  1. 先安装csvkit:pip install csvkit
  2. 执行以下命令:
csvjson --columns name,json input.csv | 
  jq -r '.[] | 
    "\(.name),", 
    (.json | fromjson | .field2.subfield.subfield2 | keys | join(" "))'

命令说明:

  • csvjson --columns name,json:将CSV转换为JSON数组,指定两列的键名为name和json,确保复杂字段正确解析
  • jq部分逻辑与方法1一致,从标准化的JSON对象中提取目标键名

输出结果

针对你提供的输入,两种方法都会输出:

name,
active passive running

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:55:02