使用 jq 或 python 将 JSON 转为 CSV

问题描述 投票:0回答:1

需要帮助转换此 JSON 并使用列维度的特定元素作为使用 jq 的 CSV 中的列标题行

输入JSON

your text

{
    "Columns": [
        {
            "Id": "ItemName",
            "IsEditable": false
        },
        {
            "Id": "Date",
            "IsEditable": false
        },
        {
            "Id": "Qty",
            "IsEditable": false
        }
    ],
    "Rows": [
        {
            "Values": [
                "ITEM1",
                "10-MAY-2024",
                "100"
            ]
        },
        {
            "Values": [
                "ITEM2",
                "20-MAY-2024",
                "200"
            ]
        },
        {
            "Values": [
                "ITEM3",
                "30-MAY-2024",
                "400"
            ]
        }
    ],
    "QueryHandle": {
        "QueryID": "00101",
        "Worksheet": {
            "Name": "Test20",
            "Scope": "NA"
        },
        "WorkAlloc": "2024-MAY"
    },
    "RowCount": 3
}

所需的 CSV 格式输出(我只显示下面的数据,忽略 JSON 中的其余元素)。

标题列来自.Columns[]|.Id

ItemName, Date, Qty
"Item1","10-MAY-2024","100"
"Item2","20-MAY-2024","200"
"Item3","20-MAy-2024","400"

尝试关注这篇文章:

如何使用jq将任意简单的JSON转换为CSV?

但还没能让它发挥作用

python jq
1个回答
0
投票

您的 JSON 输入实际上已经针对 CSV 输出进行了相当多的优化。

jq -r '[.Columns[].Id], .Rows[].Values | @csv'
"ItemName","Date","Qty"
"ITEM1","10-MAY-2024","100"
"ITEM2","20-MAY-2024","200"
"ITEM3","30-MAY-2024","400"

演示

© www.soinside.com 2019 - 2024. All rights reserved.