2017-03-17 92 views
0

每次尝试拉出临时值时都会收到错误消息。错误是:类型错误:字符串索引必须是整数从字典中提取值

这是我的代码:

for item in data['main']: 
    tempday=item['temp'] 

这是我从拉API:

{ 
"coord": {}, 
"weather": [], 
"base": "stations", 
"main": { 
    "temp": 53.2, 
    "pressure": 1021, 
    "humidity": 71, 
    "temp_min": 44.6, 
    "temp_max": 57.2 
}, 
"visibility": 16093, 
} 

我想要得到的“临时“值为53.2。我在做什么错我的代码?

+0

尝试'data ['main'] ['temp']' –

回答

-1

tempday=item['temp']返回键名。您需要遍历data['main']

for item in data['main']: 
    data['main'][item] 

输出

53.2 
1021 
71 
44.6 
57.2 
+1

这不是一个正确的解决方案。它会得到所有项目:'temp','pressure','humidity' ...... –

3

你的代码假定的data['main']内容的dict秒的iterable,并试图让所有的dict S的的temp

因为它只是另一个单dict,你可以删除for环和简单的使用

tempday=item['main']['temp'] 
+0

恭喜。你的答案至少比接受的答案好3倍;或者至多,我不知道正确的词应该是什么。 –

0

解释错误,一般来说它的键的字典迭代,在这种情况下,关键是只是字符串。这样做:

for k in some_dict: 
    # k is a string 
    # some_dict[k] return the value of k in the dict