如何修复python抛出的错误声明索引必须是整数

如何修复python抛出的错误声明索引必须是整数,python,json,Python,Json,我从URL中的API中提取,并不断获取字符串索引必须是整数。python中抛出了错误代码。我想知道如何解决这个问题?(url替换为“url”) 导入urllib.request 导入json link=“url” f=urllib.request.urlopen(链接) data=f.read() 打印(str(数据'utf-8')) weather=json.load(数据) 打印(“/n”) 打印(天气[“名称”][“温度”]) 以下是json数据的示例: {“coord”:{“lon”:

我从URL中的API中提取,并不断获取字符串索引必须是整数。python中抛出了错误代码。我想知道如何解决这个问题?(url替换为“url”)

导入urllib.request
导入json
link=“url”
f=urllib.request.urlopen(链接)
data=f.read()
打印(str(数据'utf-8'))
weather=json.load(数据)
打印(“/n”)
打印(天气[“名称”][“温度”])

以下是json数据的示例:

{“coord”:{“lon”:-94.2166,“lat”:36.4676},“天气”:[{“id”:600,“main”:“雪”,“描述”:“小雪”,“图标”:“13n”}],“基地”:“站”,“main”:“{“temp”:262.83”,感觉像:255.36,“temp\min”:262.04,“temp\u max”:263.71,“压力”:1025,“湿度”:92},“能见度”:10000,“风”:“风速”:6.17,“度”:30},“云层”:“all”:90},“系统类型”:“1619”{:1,“id”:5695,“国家”:“美国”,“日出”:1613135272,“日落”:1613174070},“时区”:-21600,“id”:0,“姓名”:“贝拉维斯塔”,“鳕鱼”:200}

以下是您共享的数据片段,它的格式使您更容易看到正在发生的事情。如您所见,虽然
weather[“name”]
有效,但
weather[“name”][“temp”]
无效,这就是您看到的错误产生的原因。相反,
weather[“main”][“temp”]
将在该字典中显示温度值

weather = {'base': 'stations',
 'clouds': {'all': 90},
 'cod': 200,
 'coord': {'lat': 36.4676, 'lon': -94.2166},
 'dt': 1613195709,
 'id': 0,
 'main': {'feels_like': 255.36,
          'humidity': 92,
          'pressure': 1025,
          'temp': 262.83,
          'temp_max': 263.71,
          'temp_min': 262.04},
 'name': 'Bella Vista',
 'sys': {'country': 'US',
         'id': 5695,
         'sunrise': 1613135272,
         'sunset': 1613174070,
         'type': 1},
 'timezone': -21600,
 'visibility': 10000,
 'weather': [{'description': 'light snow',
              'icon': '13n',
              'id': 600,
              'main': 'Snow'}],
 'wind': {'deg': 30, 'speed': 6.17}}

JSON数据看起来像什么?请将您的代码、JSON输入和收到的完整错误消息一起发布。错误消息表明
weather
weather[“name”]
是一个列表,需要一个数字索引而不是字符串——例如,
weather[0]
weather[“name”][0]
。下面是一个json数据示例:{“coord”:{“lon”:-94.2166,“lat”:36.4676},“weather”:[{“id”:600,“main”:“Snow”,“description”:“小雪”,“图标”:“13n”}],“基地”:“车站”,“主要”:{“温度”:262.83,“感觉像”:255.36,“温度最低”:262.04,“温度最高”:263.71,“气压”:1025,“湿度”:92},“能见度”:10000,“风”:{“速度”:6.17,“度”:30},“云”:{“全部”:90},“dt”:1613195709,“系统”:{“类型”:1,“id”:5695,“国家”:“美国”,“日出”:1613135272,“日落”:1613170,“时区”:21600,“,”名称“:“Bella Vista”,“cod”:200}当我尝试将打印(天气)部分更改为打印(天气[0])或打印(天气[“名称”][0])它仍然会抛出一个错误,说明关键错误:0Omg!谢谢!我终于得到了它。我已经在这个项目上工作了大约两个小时!现在,我只需要想一想如何循环从API中提取特定的邮政编码。它显示的方式一直会抛出一个错误“只能将string not list to string这没有一分钟前json的修改,但下面是一个代码示例:import urllib.request zipcode=[“7160”、“72454”、“71834”、“72223”、“72110”]用于zipcode中的zipcode:link=“f=urllib.request.urlopen(link)data=f.read()print(str(data,'utf-8'))仅供参考-我用来“漂亮地打印”词典的标准库函数是
pprint
。它位于
pprint
库中,通常作为
从pprint import pprint
导入。它是一个简单但方便的调试工具,可以用来代替
print