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

如何使用JQ从含重复键的嵌套数组中提取首个匹配的单个值

问题根源

你的原过滤器中.tags[] | select(.key == "env")会遍历所有tags元素,每匹配到一个符合条件的标签就会生成一个独立输出,所以当同一个对象下有多个大小写不同的env标签时,就会输出多条重复的父对象记录。

修正后过滤器

jq -r '.[] | .env = first(.tags[] | select(.key | ascii_downcase == "env").values[0]) | [.accountid, .name, .env] | @csv' test.json

运行输出结果

111,"integration1","prod"
222,"integration2","prod"
333,"integration3","test"

逻辑说明

  • 用first()函数包裹标签筛选逻辑,只会返回第一个匹配的标签值,后续匹配的重复标签直接忽略,保证每个父对象仅生成1条输出
  • 筛选时直接对key做小写转换匹配,不需要提前修改原tags数组的内容,不会改动原始数据结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 00:36:04