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

Python调用OpenWeatherMap API提取温值报错:string indices must be integers

TypeError: string indices must be integers 错误排查与解决

错误原因

js["list"][0]["main"]是一个字典对象,Python中直接遍历字典时,默认迭代的是字典的键(即字符串类型,比如'temp'、'temp_min')。你的代码里res是这些字符串键,却试图用res["main.temp_min"]去索引它——字符串只能用整数下标访问,因此触发TypeError。

解决方法

根据你的需求选择对应代码:

1. 获取第一个预报时段的最低/最高温度

直接通过字典键访问,无需循环:

main_data = js["list"][0]["main"]
print("最低温度:", main_data["temp_min"])
print("最高温度:", main_data["temp_max"])

2. 遍历所有预报时段的最低/最高温度

循环遍历list中的每个预报条目,再提取对应数据:

for forecast in js["list"]:
    main_info = forecast["main"]
    time = forecast["dt_txt"]
    print(f"{time} - 最低温度: {main_info['temp_min']}, 最高温度: {main_info['temp_max']}")

3. 遍历main字典的所有键值对

如果需要查看main下的所有字段,使用.items()方法遍历键和值:

main_data = js["list"][0]["main"]
for key, value in main_data.items():
    print(f"{key}: {value}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:35:30