прогноз погоды на Python

Получаем прогноз погоды на Python с помощью библиотеки Requests

Давайте попрактикуемся, API от open-meteo.com предоставляет простой и бесплатный способ получения метеорологических прогнозов. Рассмотрим, как можно использовать этот API с помощью Python и библиотеки requests.

Основные возможности API

  • Прогноз погоды по географическим координатам.
  • Разные типы прогнозов: почасовые, ежедневные и т.д.
  • Данные о температуре, влажности, осадках и других параметрах.

Пример использования

Посмотрим погоду на завтра в Краснодаре:

import requests

BASE_URL = "https://api.open-meteo.com/v1/forecast"

# Параметры запроса для Краснодара
params = {
    "latitude": 45.0355,       # широта Краснодара
    "longitude": 38.9750,      # долгота Краснодара
    "daily": "temperature_2m_min,temperature_2m_max,precipitation_sum", # минимальная и максимальная температура, сумма осадков
    "timezone": "Europe/Moscow"  # временная зона для Краснодара 
}

response = requests.get(BASE_URL, params=params)

if response.status_code == 200:
    data = response.json()
    # Поскольку индекс 0 представляет собой данные на текущий день, индекс 1 будет представлять данные на завтра
    tomorrow_temp_min = data['daily']['temperature_2m_min'][1]
    tomorrow_temp_max = data['daily']['temperature_2m_max'][1]
    tomorrow_precipitation = data['daily']['precipitation_sum'][1]
    
    print(f"Прогноз погоды в Краснодаре на завтра:")
    print(f"Минимальная температура: {tomorrow_temp_min}°C")
    print(f"Максимальная температура: {tomorrow_temp_max}°C")
    print(f"Ожидаемое количество осадков: {tomorrow_precipitation} мм")
else:
    print(f"Ошибка {response.status_code}: {response.text}")

Вывод:

Прогноз погоды в Краснодаре на завтра:
Минимальная температура: 21.7°C
Максимальная температура: 35.2°C
Ожидаемое количество осадков: 0.0 мм

Некоторые рекомендации

  • Параметры запроса: В приведенном выше примере мы запрашиваем только мин. и макс. температуру и кол-во осадков. API предоставляет множество других параметров, таких как давление, скорость ветра, влажность и т.д. Подробнее о доступных параметрах можно узнать в официальной документации.
  • Лимиты: Хотя API и является бесплатным, может существовать некоторое ограничение на количество запросов. Чтобы не превысить лимиты, всегда следите за официальной документацией и рекомендациями.
  • Обработка ошибок: В примере выше мы проверяем код ответа HTTP. Это хорошая практика для обработки возможных ошибок или изменений в API.

Содержание: