Дізнаємось поточну погоду та прогноз простеньким скриптом на Python.

Щоб отримати доступ до сервісу погоди, доведеться пройти нескладну процедуру реєстрації на сайті OpenWeatherMap.org. Сформуємо і відправимо запит, розберемо пакет у відповідь у форматі JSON, і отримаємо поточну температуру з описом стану погоди.

прогноз

Зареєструватись на openweathermap.org зовсім нескладно, а решту зробити буде ще простіше.

Реєстрація потрібна для отримання ідентифікуючого користувача рядка App Id, що складається з набору букв і цифр (схоже лише з шістнадцяткових цифр). Такого виду: «6d8e495ca73d5bbc1d6bf8ebd52c4». Після реєстрації потрібно зайти до особистого кабінету та взяти App Id, який там називається «API key».

Формування рядка запиту

Спочатку спробуємо знайти цікаве для нас місто в їхній базі. Рядок запиту повинен бути приблизно такий:

У запиті потрібно вказати потрібне місто (замість «Petersburg») та свій App Id (замість «6d8e495ca73d5bbc1d6bf8ebd52c4». Можна уточнити запит, вказавши ідентифікатор країни після назви міста через кому. Наприклад, так:

Власне запитний рядок буде сформований самою бібліотекою requests у функції get, яку використовуємо для надсилання запиту:

Перевірка наявності в базі інформації про потрібний населений пункт

План такий. У відповідь на сформований запит отримуємо пакет у форматі JSON. Розбираємо пакет та отримуємо потрібні значення за назвами полів.

Запам'ятаймо числовий ідентифікатор міста city_id для подальшого запиту, тому що постачальники сервісу рекомендували робити запит не на ім'я, а на ідентифікатор. У відповіді може бути кілька міст, які відповідають нашому запиту. До речі, якщо в запиті вказати “Moscow” та прибрати країну з рядка наведеного у прикладі запиту, то гарантовано отримаємокілька рядків у списку cities: city: ['Moscow (RU)', 'Moscow (US)', 'Moscow (US)']

Отримання інформації про поточну погоду

Залишилося тільки отримати інформацію про погоду. Якщо нас не цікавлять імперські одиниці виміру, то в запиті вказуємо, що бажаємо отримати метричні одиниці: units = metric. Якщо опис погоди потрібно отримати українською, то вказуємо «lang=ru».

Прогноз на 5 днів

Отримаємо такий висновок: 2016-11-24 15:00 -1 7 м/с ПдЗ похмуро 2016-11-24 18:00 +2 7 м/с З легкий дощ 2016-11- 24 21:00 +2 7 м/с З легкий дощ 2016-11-25 00:00 -0 7 м/с З ясно 2016-11-25 03:00 +0 7 м/с З невеликий снігопад 2016-11-25 06:00 -0 6 м/с ПнЗ злегка хмарно . Завантажити owm-request.py. Щоб цей скрипт запрацював, потрібно в першому рядку ввести Ваш API key, отриманий при реєстрації на OpenWeatherMap.org. Командний рядок, наприклад, такий: $python owm-request.py Moscow,RU

На сайті OpenWeatherMap є ще багато цікавого — отримання інформації з географічних координат, архів погоди, інформація з конкретних метеостанцій. Опис усіх доступних сервісів можна переглянути тут http://openweathermap.org/api Для роботи на Python'і з OpenWeatherMap існує спеціалізована бібліотека pyowm.

Крім OpenWeatherMap, є інші сайти, що надають аналогічну інформацію. Наприклад, WorldWeatherOnline. Доступні API можна переглянути тут. Реєстрація потрібна. Є бібліотека на Python: pywwo.

Окреме спасибі JetBrains за PyCharm.

Ви можете допомогти і перевести небагато коштів на розвиток сайту