【问题标题】:How to convert a hash of an array of array of hashes JSON input into CSV using jq?如何使用 jq 将哈希数组 JSON 输入的哈希值转换为 CSV?
【发布时间】:2021-11-19 08:00:12
【问题描述】:

我想将以下 JSON 内容存储在文件 input.json 中

{
    "results": [
        [
           {
               "field": "field1",
               "value": "value1-1"
           },
           {
               "field": "field2",
               "value": "value1-2"
           },
           {
               "field": "field3",
               "value": "value1-3"
           }
        ],
        [
           {
               "field": "field1",
               "value": "value2-1"
           },
           {
               "field": "field2",
               "value": "value2-2"
           },
           {
               "field": "field3",
               "value": "value2-3"
           }
        ],
        [
           {
               "field": "field1",
               "value": "value3-1"
           },
           {
               "field": "field2",
               "value": "value3-2"
           },
           {
               "field": "field3",
               "value": "value3-3"
           }
        ]
    ]
}

转换成 CSV 输出

"field1","field2","field3"
"value1-1","value1-2","value1-3"
"value2-1","value2-2","value2-3"
"value3-1","value3-2","value3-3"

我想出的最接近的 jq 表达式是这样的:

$ cat input.json | jq -r '.results | .[] | map(.field), map(.value) | @csv'
"field1","field2","field3"
"value1-1","value1-2","value1-3"
"field1","field2","field3"
"value2-1","value2-2","value2-3"
"field1","field2","field3"
"value3-1","value3-2","value3-3"

这仍然不正确。我应该如何编写 jq 表达式以获得所需的 CSV 输出?

【问题讨论】:

    标签: json bash jq export-to-csv


    【解决方案1】:

    您正在将.[] 输入map(.field) 以及map(.value)

    仅在first 项上使用map(.field),在所有.[] 项上使用map(.value)

    jq -r '.results | (first | map(.field)), (.[] | map(.value)) | @csv' input.json 
    

    Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-27
      • 2019-05-23
      • 2015-11-26
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 1970-01-01
      相关资源
      最近更新 更多