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

Python统计API返回JSON中clusterInventoryStackDTO元素数量报错求助

统计JSON数组元素数量解决方案

问题根因定位

出现KeyError通常是以下两类原因:

  • 实际解析后的字典中clusterInventoryStackDTO字段名和你写的存在差异(比如大小写拼写偏差、前后带不可见空格、API返回字段名存在变体)
  • 部分API的序列化规则会在数组只有1个元素时,自动把数组结构转为单个对象,甚至在没有元素时不返回该字段

排查步骤

  1. 先打印mgmtResponse下的所有键,确认字段是否存在、名称是否完全匹配:
print(stackResult["mgmtResponse"].keys())
  1. 确认目标字段的类型:
target = stackResult["mgmtResponse"].get("clusterInventoryStackDTO")
print(type(target))

兼容统计代码

可以直接用以下代码兼容各种场景,规避KeyError同时得到正确数量:

target_data = stackResult["mgmtResponse"].get("clusterInventoryStackDTO")
if target_data is None:
    # 字段不存在时数量为0
    stack_count = 0
elif isinstance(target_data, list):
    # 正常数组场景直接统计长度
    stack_count = len(target_data)
else:
    # 单元素被转为对象的场景,数量为1
    stack_count = 1
print(stack_count)

如果你已经可以通过JSONPath正常获取到目标对象,直接对JSONPath返回的匹配结果执行len()操作即可,注意部分JSONPath库会把匹配结果外层包裹一层数组,需要先取出目标数组再统计长度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:48:02