2017-03-17 18 views
0

一時的な値を取得しようとするとエラーが発生します。エラーは次のとおりです。例外TypeError:文字列のインデックスは整数辞書から値を引き出す

でなければなりませんこれは私のコードです:私は「一時を取得したい

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

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

これは私から引っ張っていますAPIです"値は53.2です。私のコードで何が間違っていますか?

+0

を試してみてください 'data [' main '] [' temp '] ' –

答えて

-1

を使用することができます。あなたは、エラーを説明するために

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

data['main']超える出力

53.2 
1021 
71 
44.6 
57.2 
+1

これは正しい解決策ではありません。 'temp'、' pressure'、 'humidity'など全ての項目を取得します。 –

3

あなたのコードはdata['main']の内容がdict秒のiterableあり、それらのdict Sのすべてのtempを取得しようとしていることを前提としています。

それだけで別の単一dictあるので、あなたはforループをドロップすると、単純にキー名を返しtempday=item['temp']

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 
関連する問題