从JSON中提取特定值但是:TypeError:list indices必须是整数而不是str

时间:2017-02-18 07:48:46

标签: python json list dictionary

  

这是API的JSON输出

{
"list":[
    {
          "dt": 1490791600,
          "temp": {
              "day": 58.26,
              "min": 39.65,
              "max": 67.37
          }
          "weather":  [
               {
                   "id": 500,
                   "main":  "Rain",
                   "description": "light rain",
                   "icon": "10d"
                }
     ]
     {
          "dt": 1480878000,
          "temp": {
              "day": 57.34,
              "min": 40.11,
              "max": 68.23
          }
          "weather":  [
               {
                   "id": 501,
                   "main":  "Showers",
                   "description": "possible rain",
                   "icon": "11d"
                }
     ]
  ]

}

  

这是我的代码。我想尝试拉出" id"对于所有的天气日期。

json_obj = urllib2.urlopen(url)

data = json.load(json_obj)

for item in data['list']:

    temperature = item['temp']['min']
    forecast = item['weather']['main']
  

我能够毫无问题地提取温度数据,但我得到一个TypeError:当我尝试拉取预测数据时,列表必须是整数而不是str。我认为这是由于列表与字典概念的原因。我怎样才能拉出" id"来自此JSON数据的值?

1 个答案:

答案 0 :(得分:0)

weather是1个元素的列表。因此,您应该按以下方式访问数据。
forecast = item['weather'][0]['main']