首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"TypeError:列表索引必须是整数或切片,而不是str“,其中包含来自OpenWeatherMap API的JSON

"TypeError:列表索引必须是整数或切片,而不是str“,其中包含来自OpenWeatherMap API的JSON
EN

Stack Overflow用户
提问于 2021-12-30 00:16:46
回答 1查看 113关注 0票数 1

我对从空气污染API OpenWeatherMap中刮掉的json文件有问题。

当我试图使用aqi = air_data['list']['main']['aqi']浏览数据时,我会得到以下错误: TypeError:列表索引必须是整数或切片,而不是str。

完整的代码是:

代码语言:javascript
复制
import requests

URL = "http://api.openweathermap.org/data/2.5/air_pollution?lat=MY_LATITUDE&lon=MY_LONGITUDE&appid=MY_API_KEY"

air_data = requests.get(URL).json()

aqi = air_data['list']['main']['aqi']

print(aqi, 'AirQualityIndex')

使用pprint格式化的air_data如下所示:

代码语言:javascript
复制
{'coord': {'lat': MY_LAT, 'lon': MY_LON},
'list': [{'components': {'co': 223.64,
                      'nh3': 0.28,
                      'no': 0,
                      'no2': 5.91,
                      'o3': 42.92,
                      'pm10': 2.14,
                      'pm2_5': 1.79,
                      'so2': 1.79},
       'dt': 1640822400,
       'main': {'aqi': 1}}]}

我不明白它为什么会认为aqi后面的1是一个字符串。在我使用天气API的其他代码中,它的工作没有任何问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-30 00:19:25

而不是:

代码语言:javascript
复制
aqi = air_data['list']['main']['aqi']

用途:

代码语言:javascript
复制
aqi = air_data['list'][0]['main']['aqi']

你没注意到这里有一张清单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70526278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档