general_posts/python-weather-api/load_database.py

59 lines
1.9 KiB
Python

import csv
from datetime import datetime
from database import Database
from model.base import Base
from model.current import CurrentWeather
from model.forecast import ForecastWeather
from model.historic import HistoricWeather
DATA_PATH = "../data"
DATABASE_URL = "sqlite:///weather.db"
database = Database(DATABASE_URL)
if __name__ == "__main__":
database.drop_all(Base)
database.create_all(Base)
with open("./data/historic_data.csv", "r") as file:
reader = csv.DictReader(file)
for row in reader:
entry = HistoricWeather(
city=row["city"].lower(),
date=datetime.strptime(row["date"], "%Y-%m-%d"),
condition=row["condition"].lower(),
humidity=float(row["humidity"]),
temperature=float(row["temperature"])
)
database.session.add(entry)
database.session.commit()
with open("./data/current_data.csv", "r") as file:
reader = csv.DictReader(file)
for row in reader:
entry = CurrentWeather(
city=row["city"].lower(),
condition=row["condition"].lower(),
humidity=float(row["humidity"]),
temperature=float(row["temperature"]),
wind_speed=float(row["wind_speed"])
)
database.session.add(entry)
database.session.commit()
with open("./data/forecast_data.csv", "r") as file:
reader = csv.DictReader(file)
for row in reader:
entry = ForecastWeather(
city=row["city"].lower(),
date=datetime.strptime(row["date"], "%Y-%m-%d"),
day=row["day"].lower(),
condition=row["condition"].lower(),
humidity=float(row["humidity"]),
temperature=float(row["temperature"]),
)
database.session.add(entry)
database.session.commit()