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

如何用JQ统计嵌套数组元素数量并导出为CSV

问题需求

现有嵌套数组结构的JSON数据,需要导出为统计嵌套数组元素数量的CSV格式,当前使用的JQ语句会为每个嵌套元素生成多行,不符合需求。

现有JSON数据

[
    {
        "value1": "Data1-0",
        "value2": "Data2-0",
        "nArray": [
            {"nValue1": "nData1-0a","nValue2": "nData2-0a"},
            {"nValue1": "nData1-0b","nValue2": "nData2-0a"},
            {"nValue1": "nData1-0c","nValue2": "nData2-0a"}
        ],
        "value3": "Data3-0"
    },
    {
        "value1": "Data1-1",
        "value2": "Data2-1",
        "nArray": [
            {"nValue1": "nData1-1a","nValue2": "nData2-1a"},
            {"nValue1": "nData1-1b","nValue2": "nData2-1a"}
        ],
        "value3": "Data3-1"
    }
]

期望的CSV格式

Value1,Value2,Value3,nArrayCount
Data1-0,Data2-0,Data3-0,3
Data1-1,Data2-1,Data3-1,2

当前JQ语句的问题

当前使用的JQ语句:

[.[] | [.value1,.value2,.value3] + (.nArray[]? | [.nValue1]) ] | .[] | @csv

会遍历nArray的每个元素并生成多行数据,而我们只需要统计nArray的元素总数,不需要展开嵌套内容。

正确的JQ解决方案

使用JQ的length函数直接获取数组长度,配合@csv生成目标格式:

完整命令

["Value1", "Value2", "Value3", "nArrayCount"],
(.[] | [.value1, .value2, .value3, (.nArray | length)])
| @csv

说明

  • (.nArray | length):直接计算nArray数组的元素数量,避免遍历数组内的每个元素
  • 先构造表头数组,再处理每个JSON对象生成对应的数据行,最后统一用@csv转换为CSV格式

执行该命令后,输出结果完全匹配期望的CSV格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:41:30