Python

Яндекс погода API запрос

В документации АПИ Яндекс Погоды прописано:
Формат запроса
Населенный пункт указывается при помощи значений широты (параметр lat) и долготы (параметр lon). Если данные параметры заданы некорректно, ответ будет содержать код ошибки 404.

GET https://api.weather.yandex.ru/v2/forecast ?
lat=<широта>
& lon=<долгота>
& [lang=<язык ответа>]
& [limit=<срок прогноза>]
& [hours=<наличие почасового прогноза>]
& [extra=<подробный прогноз осадков>]

X-Yandex-API-Key: <значение ключа>


АПИ ключ есть

Подскажите пожалуйста, как будет выглядеть образец запроса на Питоне с помощью библиотеки requests?
Бекзод Жураев
Бекзод Жураев
1 294
Для того, чтобы сделать запрос к API Яндекс.Погоды на Python с помощью библиотеки requests, вам нужно импортировать эту библиотеку и использовать метод get с указанием URL и параметров запроса. Также вам нужно добавить заголовок X-Yandex-API-Key со значением вашего ключа API.

Пример кода:
 import requests 

# Задаем координаты населенного пункта
lat = 55.75396 # широта Москвы
lon = 37.620393 # долгота Москвы

# Задаем параметры запроса
params = {
'lat': lat,
'lon': lon,
'lang': 'ru_RU', # язык ответа
'limit': 7, # срок прогноза в днях
'hours': True, # наличие почасового прогноза
'extra': False # подробный прогноз осадков
}

# Задаем значение ключа API
api_key = 'ВАШ КЛЮЧ API'

# Задаем URL API
url = 'https://api.weather.yandex.ru/v2/forecast'

# Делаем запрос к API
response = requests.get(url, params=params, headers={'X-Yandex-API-Key': api_key})

# Проверяем статус ответа
if response.status_code == 200:
# Преобразуем ответ в JSON формат
data = response.json()
# Выводим данные о текущей погоде
print(f'Температура воздуха: {data["fact"]["temp"]} °C')
print(f'Ощущается как: {data["fact"]["feels_like"]} °C')
print(f'Скорость ветра: {data["fact"]["wind_speed"]} м/с')
print(f'Давление: {data["fact"]["pressure_mm"]} мм рт. ст.')
print(f'Влажность: {data["fact"]["humidity"]} %')
print(f'Погодное описание: {data["fact"]["condition"]}')
else:
# Выводим код ошибки
print(f'Ошибка: {response.status_code}')
SM
Shoxrux Maxkamov
2 456
Лучший ответ
Бекзод Жураев спасибо!!!! оказывается в документации у них URL не тот, не обновляют нифига
import requests

API_KEY = 'your_api_key'

lat = 55.75 # Широта
lon = 37.62 # Долгота

params = {
'lat': lat,
'lon': lon,
'lang': 'ru_RU'
}

headers = {
'X-Yandex-API-Key': API_KEY
}

response = requests.get(' https://api.weather.yandex.ru/v2/forecast ', params=params, headers=headers)

weather = response.json()

print(weather)
Митя Федяев
Митя Федяев
3 720
Бекзод Жураев спасибо!!!! оказывается в документации у них URL не тот, не обновляют нифига