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

如何用单条JQ命令从大JSON文件提取数据生成合并CSV?

单条JQ命令生成合并CSV的解决方案

你可以用一条JQ命令直接提取所有需要的字段并生成合并后的CSV文件,无需手动拆分再合并。以下是具体实现:

完整命令

jq -r '
# 输出CSV表头
["IP地址", "接口名称", "子网掩码", "VLAN ID"],
# 遍历目标JSON层级
(.ServiceEngine[]?.data_vnics[]?.vlan_interfaces[] |
  # 暂存当前接口的名称和VLAN ID
  .if_name as $if_name |
  .vlan_id as $vlan_id |
  # 遍历当前接口下的每个网络配置
  .vnic_networks[]?.ip |
  # 组合需要的字段为数组,转成CSV格式
  [.ip_addr.addr, $if_name, .mask, $vlan_id]
) | @csv' config_AviCluster.json > config_AviCluster_merged.csv

命令说明

  1. 表头生成:先输出包含四个字段名称的数组,通过@csv转为标准CSV表头行
  2. 层级遍历:依次遍历ServiceEngine、data_vnics、vlan_interfaces三级结构,?符号会自动跳过缺失对应字段的条目,避免运行报错
  3. 字段暂存:把当前接口的if_name和vlan_id存为变量,确保每个网络配置都能关联到所属的接口信息
  4. 字段组合:遍历每个接口下的vnic_networks网络配置,提取IP地址和子网掩码,再和暂存的接口信息组合成数组,最后通过@csv转为符合规范的CSV行
  5. 输出文件:通过重定向>将结果写入合并后的CSV文件

注意事项

  • @csv会自动处理字段中的特殊字符(如逗号、双引号),保证CSV文件的格式正确性
  • 如果JSON中存在部分字段缺失的情况,?符号会跳过这些不完整的条目,不会影响其他有效数据的提取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:50:29