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

使用jq解析嵌套JSON,筛选GCP非默认配额限制

解决GCP配额JSON解析:筛选非默认值的Quota Limits

正确的jq表达式

[
  .[]
  | .quota = [.quota[] | select(tonumber(.defaultLimit) != tonumber(.effectiveLimit))]
  | select(.quota | length > 0)
]

原表达式问题分析

你之前的表达式逻辑错误:.quota[].defaultLimit|tonumber != .quota[].effectiveLimit|tonumber 会将所有quota项的defaultLimit和effectiveLimit分别展开为数字数组,再进行整体比较,而非针对单个quota对象逐一判断两者是否不等。这种写法会导致筛选逻辑混乱,无法得到预期结果。

表达式拆解

  1. 遍历顶层数组:.[] 逐个处理每个metric对象
  2. 筛选目标quota项:[.quota[] | select(tonumber(.defaultLimit) != tonumber(.effectiveLimit))] 遍历当前对象的quota数组,只保留defaultLimit与effectiveLimit数值不等的项,并用数组包裹结果
  3. 过滤空结果:select(.quota | length > 0) 只保留那些筛选后quota数组不为空的metric对象,避免输出无有效配额变更的条目

验证结果

将示例JSON输入上述jq表达式,会输出你期望的结果:

[
  {
    "metric": "compute.googleapis.com/a2_cpus",
    "quota": [    
      {
        "defaultLimit": "12",
        "dimensions": {
          "region": "asia-east1"
        },
        "effectiveLimit": "13"
      }
    ]
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 08:12:20