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

使用jq统计JSON数组中各trait对应value的唯一出现次数

jq统计属性出现次数解决方案

直接使用的命令

jq 'map(.attributes[]) | group_by(.trait) | map({key: .[0].trait, value: map(.value) | reduce .[] as $val ({}; .[$val] += 1)}) | from_entries' 你的JSON文件路径

命令逻辑拆解

  • map(.attributes[]):遍历输入的JSON数组所有元素,提取每个元素下的attributes数组内容,展开为仅包含所有trait+value对象的一维数组
  • group_by(.trait):将上述一维数组按trait字段的值分组,相同trait的对象会被归入同一个子数组
  • map({key: .[0].trait, value: ...}):遍历每个分组,生成为后续合并用的键值对结构:
    • 键为当前分组对应的trait值
    • 值部分先提取分组内所有value字段,再通过reduce累加每个value的出现次数
  • from_entries:将所有键值对结构合并为最终的JSON对象

输出验证

使用你提供的示例输入运行上述命令,会直接得到你需要的输出格式:

{
  "Color 1": {
    "Blue": 2
  },
  "Color 2": {
    "Yellow": 1,
    "Red": 1
  },
  "Hair": {
    "Wild": 2
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:36:03