Ошибка при получении данных элемента из словаря Python - PullRequest
0 голосов
/ 17 октября 2019

Я читаю файл json, полученный из openweathermap, чтобы узнать температуру и дождь, ожидаемые для местоположения. Вот пример файла json

У меня есть цикл для извлечения для каждого индекса, и я могу получить любое значение, кроме дождя.

result_data = []
result_tmax = []
result_prec = []
for item in data['list']:
   time = item['dt_txt']
   temperature = item['main']['temp_max']
   prec = item['rain']['3h']
   result_data.append(time)
   result_tmax.append(temperature)
   result_prec.append(prec)

Я получаю

KeyError: 'rain'

Без дождя работает нормально:

    future_date     future_temp
0   2019-10-17 12:00:00     18.45
1   2019-10-17 15:00:00     19.48
2   2019-10-17 18:00:00     17.03
3   2019-10-17 21:00:00     16.44
4   2019-10-18 00:00:00     15.67
5   2019-10-18 03:00:00     14.77

Спасибо заранее.

Ответы [ 2 ]

1 голос
/ 17 октября 2019

В указанной вами ссылке не найдено ни одного ключевого слова "дождь". нажмите здесь. Я думаю, вы ищете "снег".

Пожалуйста, замените "дождь". "со" снегом "и проверить снова. Это будет работать.

0 голосов
/ 17 октября 2019

Это мой вызов API, а не пример, который я передаю (извините за ошибку):

 'list': [{'dt': 1571335200,
 'main': {'temp': 16.04,
'temp_min': 16.04,
'temp_max': 16.84,
'pressure': 1016,
'sea_level': 1016,
'grnd_level': 997.149,
'humidity': 87,
'temp_kf': -0.81},
 'weather': [{'id': 500,
 'main': 'Rain',
 'description': 'light rain',
 'icon': '10n'}],
 'clouds': {'all': 96},
 'wind': {'speed': 2.122, 'deg': 308.301},
 'rain': {'3h': 0.563},
 'sys': {'pod': 'n'},
'dt_txt': '2019-10-17 18:00:00'},
{'dt': 1571346000,
'main': {'temp': 15.74,
'temp_min': 15.74,
'temp_max': 16.35,
'pressure': 1018,
'sea_level': 1018,
'grnd_level': 998.455,
'humidity': 83,
'temp_kf': -0.61},
'weather': [{'id': 804,
 'main': 'Clouds',
 'description': 'overcast clouds',
 'icon': '04n'}],
'clouds': {'all': 97},
'wind': {'speed': 2.292, 'deg': 325.325},
'sys': {'pod': 'n'},
'dt_txt': '2019-10-17 21:00:00'}

В 2019-10-17 в 18:00:00 будет дождь, в 21:00:00Дождя нет, а Дождь Предмета исчезает.

У кого-нибудь есть идея, чтобы решить эту проблему и избежать ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...