Я работал над простым веб-приложением о погоде, используя флешку и python.
Один из маршрутов в моем файле main.py - это маршрут погоды. Он имеет функцию, которая вызывает API погоды и печатает вывод JSON.
Моя проблема заключается в извлечении определенных данных из вывода json. Вот как выглядит результат:
{'base': 'stations',
'clouds': {'all': 90},
'cod': 200,
'coord': {'lat': 40.73, 'lon': -73.99},
'dt': 1557824237,
'id': 5128581,
'main': {'humidity': 93,
'pressure': 1009,
'temp': 43.93,
'temp_max': 46,
'temp_min': 42.01},
'name': 'New York',
'sys': {'country': 'US',
'id': 4026,
'message': 0.0144,
'sunrise': 1557826807,
'sunset': 1557878678,
'type': 1},
'visibility': 12874,
'weather': [{'description': 'mist', 'icon': '50n', 'id': 701, 'main': 'Mist'},
{'description': 'light intensity drizzle',
'icon': '09n',
'id': 300,
'main': 'Drizzle'}],
'wind': {'deg': 20, 'speed': 8.05}}
Я использовал pprint, чтобы сделать его немного более читабельным. То, что я пытаюсь сделать, это извлечь данные «описания», создав словарь Python.
weather = {
'city': city,
'temperature': r['main']['temp'],
'description': r['weather'][1]['description'],
'icon': r['weather'][1]['icon'],
}
Когда я печатаю погоду, я ожидаю, что она распечатает description: light intensity drizzle
, icon: 09n
, id:300
, но я получаю ошибку ключа. Я не получаю ключевую ошибку, когда использую «0» вместо «1», но я пытаюсь получить вторые данные описания, а не первые. Есть предложения?