2017-03-17 144 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