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

Python提取JSON字段失败求助:复杂API响应索引报错

问题分析与解决

你的报错核心原因是JSON结构里多个层级是列表(数组),而非字典,直接用字符串索引会触发TypeError。从控制台输出的结构可以拆解:

  • grid_data["data"] 是包含单个元素的列表([]包裹),必须用整数索引(如[0])取其中的字典
  • 该字典内的data字段同样是列表,需要再次用[0]取元素
  • generationmix是包含多种燃料信息的列表,每个元素是{fuel: xxx, perc: xxx}的字典

修正后的代码

import requests
import json

response = requests.get(grid_url)
grid_data = json.loads(response.text)  

# 逐层解析列表和字典
region_data = grid_data["data"][0]  # 取第一个区域数据
intensity_data = region_data["data"][0]  # 取第一个时段的数据
generation_mix = intensity_data["generationmix"]

# 遍历找到coal对应的百分比
coal_perc = next(item["perc"] for item in generation_mix if item["fuel"] == "coal")
print(f"coal={coal_perc}")

代码说明

  1. 用[0]索引取出列表中的唯一元素(你的返回结果里每个列表仅含一个元素)
  2. 通过生成器表达式遍历generationmix列表,匹配fuel为coal的项,直接取出其perc值
  3. 用f-string格式化输出,避免原代码中数字与字符串拼接的类型错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:52:45