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

JQ分组拼接文本对象问题:JSON转CSV无法合并同车型条目

用JQ合并同车型用户条目生成目标CSV

原始JSON数据

[{"State": "NewYork","Drivers": [
{"Car": "Jetta","Users": [{"Name": "Steve","Details": {"Location": "Home","Time": "9a-7p"}}]},
{"Car": "Jetta","Users": [{"Name": "Roger","Details": {"Location": "Office","Time": "3p-6p"}}]},
{"Car": "Ford","Users": [{"Name": "John","Details": {"Location": "Home","Time": "12p-5p"}}]}
]}]

期望输出CSV

"NewYork","Jetta","Steve;Roger","Home;Office","9a-7p;3p-6p"  
"NewYork","Ford","John","Home","12p-5p"

无效的JQ代码

.[] | .Drivers[] | .Car as $car |
    .Users[] |  
    [$car, .Name] | @csv

正确的JQ解决方案

要实现同车型下用户条目的合并,核心是按Car字段分组,再把每组内的用户信息用分号拼接:

.[] | .State as $state | .Drivers | group_by(.Car)[] |
  $state as $s |
  .[0].Car as $car |
  (map(.Users[].Name) | join(";")) as $names |
  (map(.Users[].Details.Location) | join(";")) as $locations |
  (map(.Users[].Details.Time) | join(";")) as $times |
  [$s, $car, $names, $locations, $times] | @csv

代码说明

  • 先提取State并保存为变量,避免分组后丢失该字段
  • 对Drivers数组按Car分组,得到每个车型的独立分组
  • 从分组中提取车型名称,再分别把组内所有用户的Name、Location、Time提取后用分号拼接
  • 最后将State、车型、拼接后的用户信息组成数组,转换为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 02:15:34