Как вывести значение из OpenWeather?
code_to_smail = {
"Clear": 'Ясно\U00002600',
"Clouds": 'Облачно\U00002601',
"Rain": 'Дождь\U0001F327',
"Thunderstorm": 'Гроза\U000026C8',
"Mist": 'Туман\U0001F32B',
"Snow": 'Снег\U00002744',
}
Вот есть переменная code_to_smile там находятся погодные значения, я вставил снизу скриншот фотографии от сайта и нужно вывести Description. Как это сделать?
Ответы (1 шт):
Автор решения: ZxNuClear
→ Ссылка
Если вы хотите получать и использовать иконки в сообщениях, то в JSON, который отдает вам сервер, они есть и можно цепляться за них. Создайте словарь:
weather_icons = {
'11d': '⛈',
'09d': '?',
'10d': '?',
'13d': '❄️',
'50d': '??️',
'01d': '☀️',
'01n': '?',
'02d': '?',
'02n': '?',
'03d': '⛅️',
'03n': '⛅️',
'04d': '☁️',
'04n': '☁️'
}
функцию для получения нужной иконки и температуры:
def get_weather():
city_id = '' # ID города
key = '' # Ваш API KEY
weather_url = f'https://api.openweathermap.org/data/2.5/weather?id={city_id}&appid={key}&units=metric'
weather = requests.get(weather_url).json()
icon = weather_icons[weather['weather'][0]['icon']] if weather['weather'][0]['icon'] in weather_icons else ''
weather_data = {
'temp': weather['main']['temp'],
'icon': icon
}
return weather_data
и используйте при отправке в сообщениях, например так:
await message.answer(f"В Москве сейчас {round(weather['temp'])}°C {weather['icon']}")
