Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Интегрировать данные о погоде через API. Создайте Python-скрипт в Jupyter Notebook. Используйте Open-Meteo API для получения данных о погоде (минимальная температура) за декабрь 2024 года для каждого города в системе. Сохраните код в файл module1_weather_api.py.
Предмет: Информатика
Раздел: Работа с API, обработка данных, базы данных, Python-программирование
Создать Python-скрипт в Jupyter Notebook, который:
cities
.weather
.module1_weather_api.py
.Из таблицы cities
извлекаются:
city_name
latitude
longitude
Open-Meteo предоставляет погодные данные по широте и долготе. Пример запроса:
https://archive-api.open-meteo.com/v1/archive?latitude=52.52&longitude=13.41&start_date=2024-12-01&end_date=2024-12-31&daily=temperature_2m_min&timezone=auto
Извлекается минимальная температура на каждый день декабря 2024 года для каждого города.
weather
Поля:
city_id
weather_date
min_temperature
module1_weather_api.py
):# module1_weather_api.py
import requests
import sqlite3
from datetime import datetime, timedelta
# Подключение к базе данных (замените на свой путь)
conn = sqlite3.connect('your_database.db')
cursor = conn.cursor()
# Получение списка городов
cursor.execute("SELECT city_id, city_name, latitude, longitude FROM cities")
cities = cursor.fetchall()
# Даты для декабря 2024
start_date = "2024-12-01"
end_date = "2024-12-31"
# Базовый URL Open-Meteo API
base_url = "https://archive-api.open-meteo.com/v1/archive"
# Обход всех городов
for city_id, city_name, lat, lon in cities:
params = {
"latitude": lat,
"longitude": lon,
"start_date": start_date,
"end_date": end_date,
"daily": "temperature_2m_min",
"timezone": "auto"
}
response = requests.get(base_url, params=params)
if response.status_code == 200:
data = response.json()
dates = data["daily"]["time"]
temps = data["daily"]["temperature_2m_min"]
for date_str, temp in zip(dates, temps):
cursor.execute("""
INSERT INTO weather (city_id, weather_date, min_temperature)
VALUES (?, ?, ?)
""", (city_id, date_str, temp))
print(f"✅ Данные добавлены для города: {city_name}")
else:
print(f"❌ Ошибка при получении данных для города: {city_name}")
# Сохраняем изменения
conn.commit()
conn.close()
weather
существует.Если нужно — могу помочь адаптировать код под PostgreSQL или MySQL.