Как вывести значение из 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']}")
→ Ссылка