从字典中提取值
问题描述:
每次尝试拉出临时值时都会收到错误消息。错误是:类型错误:字符串索引必须是整数从字典中提取值
这是我的代码:
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。我在做什么错我的代码?
答
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' ...... –
答
你的代码假定的data['main']
内容的dict
秒的iterable
,并试图让所有的dict
S的的temp
。
因为它只是另一个单dict
,你可以删除for
环和简单的使用
tempday=item['main']['temp']
+0
恭喜。你的答案至少比接受的答案好3倍;或者至多,我不知道正确的词应该是什么。 –
答
解释错误,一般来说它的键的字典迭代,在这种情况下,关键是只是字符串。这样做:
for k in some_dict:
# k is a string
# some_dict[k] return the value of k in the dict
尝试'data ['main'] ['temp']' –