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

如何用Linux下的jq工具将多层级JSON扁平化为指定格式CSV?

使用jq将多层JSON转换为指定CSV格式

实现命令

假设你的JSON数据保存在input.json文件中,执行以下命令即可生成目标CSV:

jq -r '
(["taskId", "jobs.runId", "jobs.startTime", "jobs.endTime", "jobs.status", "jobs.fileDetails.path", "jobs.fileDetails.transferDirection"] | @csv),
(.jobActivityLog[] | .taskId as $taskId | .jobs[] | .fileDetails[] | [$taskId, .runId, .startTime, .endTime, .status, .path, .transferDirection] | @csv)
' input.json

命令解析

  • -r:输出原始字符串,避免CSV内容被JSON引号包裹
  • 第一行:将指定表头组成数组,通过@csv格式化为标准CSV表头行
  • 第二部分逻辑:
    1. .jobActivityLog[]:展开顶层的任务日志数组
    2. .taskId as $taskId:暂存当前任务的taskId,供嵌套层级引用
    3. .jobs[]:展开当前任务下的作业数组
    4. .fileDetails[]:展开当前作业下的文件详情数组
    5. 按表头顺序提取字段并组成数组,再通过@csv格式化为CSV数据行

输出示例

执行命令后会得到如下格式的输出:

"taskId","jobs.runId","jobs.startTime","jobs.endTime","jobs.status","jobs.fileDetails.path","jobs.fileDetails.transferDirection"
"gNngdUm4p0WfBDKHJqQ2S8",63750,"2025-05-04T19:03:48Z","2025-05-04T19:03:50Z","SUCCESS","/in/finance/ALL_GL_AHCS/2025/05/04/XlaTransaction_ALL_20250504T1902314697.zip","UPLOAD"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:51:06