59 lines
1.9 KiB
Python
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() |