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

使用Python解析API返回JSON时遇TypeError/KeyError问题求助

问题分析与解决

错误原因

  1. TypeError: string indices must be integers:
    直接遍历json_resp(顶层字典)时,Python默认迭代字典的键名(比如"totalRecords"、"_links"、"summaryOfServices"),这些键是字符串类型。你试图用entry["data1"]访问字符串的索引,自然报错——字符串只能用整数索引。

  2. KeyError: 'data1':
    data1并非顶层字典的键,它嵌套在summaryOfServices数组的每个子对象里,直接从顶层字典取data1肯定找不到。

修正后的代码

resp = requests.get(url, authHeaders)
rprint(url)

json_resp = resp.json()
# 先获取目标数组summaryOfServices,用get避免键不存在时报错
service_entries = json_resp.get("summaryOfServices", [])
count = 0

for entry in service_entries:
    item_1 = entry["data1"]
    item_2 = entry["data2"]
    item_3 = entry["data3"]
    item_4 = entry["data4"]
    item_5 = entry["data5"]
    item_6 = entry["data6"]
    count += 1
    rprint(f"Data 1: {item_1}\tData 2: {item_2}\t"
           f"Data 3: {item_3}\tData 4: {item_4}\t"
           f"Data 5: {item_5}\tData 6: {item_6}")

补充说明

  • 用json_resp.get("summaryOfServices", [])替代直接索引,能避免API返回中没有该键时触发KeyError,默认返回空数组更安全。
  • 原代码中count未初始化,修正后提前定义为0,避免未定义错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 12:36:20