使用jq将含不同键的JSON转换为CSV格式的实现方法咨询
用jq将目标JSON转换为指定格式CSV的实现方案
你可以直接执行以下jq命令完成转换:
jq -r ' # 输出固定表头 "PCID,OSmodle,OSversion,IEversion,hardwareUSB,OrderStatus", # 遍历所有PC条目 to_entries[] | [ # 外层键作为PCID字段 .key, .value.OSmodle, # 字段不存在时默认返回空字符串,避免输出null .value.OSversion // "", .value.IEversion // "", # USB设备列表用&拼接为字符串 (.value.hardwareUSB | join("&")), .value.OrderStatus ] # 所有字段包裹双引号后用逗号拼接为CSV行 | map("\"" + . + "\"") | join(",") ' 你的输入文件名.json
命令逻辑说明
- 加
-r参数是为了输出原始字符串,不会给整行结果额外套双引号 to_entries[]将外层的PCID映射对象转换为可遍历的键值对数组// ""是空值替代运算符,对应字段不存在时返回空字符串,保证CSV列数对齐join("&")将hardwareUSB的数组格式数据拼接为单个字符串,符合CSV单单元格要求- 最后统一给每个字段加双引号,避免字段内容含特殊符号时CSV解析错误
内容的提问来源于stack exchange,提问作者Tai Ka Ki
相关产品推荐
相关产品推荐

