Adding initial weather lookup and populating the database from csvs

This commit is contained in:
2025-07-08 23:14:57 +00:00
parent 3f2568875f
commit f21032a1f0
5 changed files with 554 additions and 328 deletions

View File

@@ -15,7 +15,9 @@ class Importer:
bb_dict = list(reader)
for game in bb_dict:
print(game)
self.populate_database_with_stats(game)
break
def parse_one_line(self, line):
@@ -24,7 +26,7 @@ class Importer:
def parse_last_line_of_file(self, filepath):
pass
def populate_database_with_stats(self, bb_game_stats):
def populate_database_with_stats(self, game_stats):
insert_game = """
INSERT INTO games
(
@@ -103,54 +105,40 @@ class Importer:
)
"""
for game_stats in bb_game_stats:
game_data = [
game_stats["date"], game_stats["num-of-game"], game_stats["day-of-week"],
game_stats["length-in-outs"], game_stats["day-night"], game_stats["completion-info"],
game_stats["forfeit"], game_stats["protest"], game_stats["park-id"],
game_stats["attendance"], game_stats["length-in-minutes"], game_stats["home-plate-ump-id"],
game_stats["home-plate-ump-name"], game_stats["1b-plate-ump-id"], game_stats["1b-plate-ump-name"],
game_stats["2b-plate-ump-id"], game_stats["2b-plate-ump-name"], game_stats["3b-plate-ump-id"],
game_stats["3b-plate-ump-name"], game_stats["lf-plate-ump-id"], game_stats["lf-plate-ump-name"],
game_stats["rf-plate-ump-id"], game_stats["rf-plate-ump-name"],
]
game_data = [
game_stats["date"], game_stats["num-of-game"], game_stats["day-of-week"],
game_stats["length-in-outs"], game_stats["day-night"], game_stats["completion-info"],
game_stats["forfeit"], game_stats["protest"], game_stats["park-id"],
game_stats["attendance"], game_stats["length-in-minutes"], game_stats["home-plate-ump-id"],
game_stats["home-plate-ump-name"], game_stats["1b-plate-ump-id"], game_stats["1b-plate-ump-name"],
game_stats["2b-plate-ump-id"], game_stats["2b-plate-ump-name"], game_stats["3b-plate-ump-id"],
game_stats["3b-plate-ump-name"], game_stats["lf-plate-ump-id"], game_stats["lf-plate-ump-name"],
game_stats["rf-plate-ump-id"], game_stats["rf-plate-ump-name"],
]
game_id = self.database.insert(insert_game, game_data)
game_id = self.database.insert(insert_game, game_data)
team_data = [
game_id, game_stats["visiting-team"], game_stats["visiting-game-num"],
game_stats["visiting-score"], game_stats["visiting-line-scores"], game_stats["visiting-at-bats"],
game_stats["visiting-hits"], game_stats["visiting-doubles"], game_stats["visiting-triples"],
game_stats["visiting-homeruns"], game_stats["visiting-rbi"], game_stats["visiting-sacrifice-hits"],
game_stats["visiting-sacrifice-flies"], game_stats["visiting-hit-by-pitch"], game_stats["visiting-walks"],
game_stats["visiting-intentional-walks"], game_stats["visiting-strikeouts"], game_stats["visiting-stolen-bases"],
game_stats["visiting-caught-stealing"], game_stats["visiting-grounded-double"], game_stats["visiting-interference"],
game_stats["visiting-left-on-base"], game_stats["visiting-pitchers-used"], game_stats["visiting-individual-earned-runs"],
game_stats["visiting-team-earned-runs"], game_stats["visiting-wild-pitches"], game_stats["visiting-balks"],
game_stats["visiting-putouts"], game_stats["visiting-assists"], game_stats["visiting-errors"],
game_stats["visiting-passed"], game_stats["visiting-double-play"], game_stats["visiting-triple-play"],
game_stats["visiting-manager-id"], game_stats["visiting-manager-name"], game_stats["visiting-start-pitcher-id"],
game_stats["visiting-start-pitcher-name"], game_stats["visiting-starting-1-id"], game_stats["visiting-starting-1-name"],
game_stats["visiting-starting-1-position"], game_stats["visiting-starting-2-id"], game_stats["visiting-starting-2-name"],
game_stats["visiting-starting-2-position"], game_stats["visiting-starting-3-id"], game_stats["visiting-starting-3-name"],
game_stats["visiting-starting-3-position"], game_stats["visiting-starting-4-id"], game_stats["visiting-starting-4-name"],
game_stats["visiting-starting-4-position"], game_stats["visiting-starting-5-id"], game_stats["visiting-starting-5-name"],
game_stats["visiting-starting-5-position"], game_stats["visiting-starting-6-id"], game_stats["visiting-starting-6-name"],
game_stats["visiting-starting-6-position"], game_stats["visiting-starting-7-id"], game_stats["visiting-starting-7-name"],
game_stats["visiting-starting-7-position"], game_stats["visiting-starting-8-id"], game_stats["visiting-starting-8-name"],
game_stats["visiting-starting-8-position"], game_stats["visiting-starting-9-id"], game_stats["visiting-starting-9-name"],
game_stats["visiting-starting-9-position"]
]
def parse_csv(file_path):
# Function to parse a CSV file and return an array of dictionaries
# Each dictionary corresponds to a row in the CSV with keys: name, address, number_of_kids, night_or_day
# Open and read the CSV file
with open(file_path, 'r') as csvfile:
# Read each row using csv.reader
reader = csv.DictReader(csvfile)
list_of_dict = list(reader)
return list_of_dict
team_data = [
game_id, game_stats["visiting-team"], game_stats["visiting-game-num"],
game_stats["visiting-score"], game_stats["visiting-line-scores"], game_stats["visiting-at-bats"],
game_stats["visiting-hits"], game_stats["visiting-doubles"], game_stats["visiting-triples"],
game_stats["visiting-homeruns"], game_stats["visiting-rbi"], game_stats["visiting-sacrifice-hits"],
game_stats["visiting-sacrifice-flies"], game_stats["visiting-hit-by-pitch"], game_stats["visiting-walks"],
game_stats["visiting-intentional-walks"], game_stats["visiting-strikeouts"], game_stats["visiting-stolen-bases"],
game_stats["visiting-caught-stealing"], game_stats["visiting-grounded-double"], game_stats["visiting-interference"],
game_stats["visiting-left-on-base"], game_stats["visiting-pitchers-used"], game_stats["visiting-individual-earned-runs"],
game_stats["visiting-team-earned-runs"], game_stats["visiting-wild-pitches"], game_stats["visiting-balks"],
game_stats["visiting-putouts"], game_stats["visiting-assists"], game_stats["visiting-errors"],
game_stats["visiting-passed"], game_stats["visiting-double-play"], game_stats["visiting-triple-play"],
game_stats["visiting-manager-id"], game_stats["visiting-manager-name"], game_stats["visiting-start-pitcher-id"],
game_stats["visiting-start-pitcher-name"], game_stats["visiting-starting-1-id"], game_stats["visiting-starting-1-name"],
game_stats["visiting-starting-1-position"], game_stats["visiting-starting-2-id"], game_stats["visiting-starting-2-name"],
game_stats["visiting-starting-2-position"], game_stats["visiting-starting-3-id"], game_stats["visiting-starting-3-name"],
game_stats["visiting-starting-3-position"], game_stats["visiting-starting-4-id"], game_stats["visiting-starting-4-name"],
game_stats["visiting-starting-4-position"], game_stats["visiting-starting-5-id"], game_stats["visiting-starting-5-name"],
game_stats["visiting-starting-5-position"], game_stats["visiting-starting-6-id"], game_stats["visiting-starting-6-name"],
game_stats["visiting-starting-6-position"], game_stats["visiting-starting-7-id"], game_stats["visiting-starting-7-name"],
game_stats["visiting-starting-7-position"], game_stats["visiting-starting-8-id"], game_stats["visiting-starting-8-name"],
game_stats["visiting-starting-8-position"], game_stats["visiting-starting-9-id"], game_stats["visiting-starting-9-name"],
game_stats["visiting-starting-9-position"]
]