diff options
Diffstat (limited to 'API/main.py')
-rw-r--r-- | API/main.py | 48 |
1 files changed, 44 insertions, 4 deletions
diff --git a/API/main.py b/API/main.py index 382cf69..3816fab 100644 --- a/API/main.py +++ b/API/main.py @@ -1,15 +1,28 @@ from fastapi import FastAPI import pandas as pd -import os +import numpy as np -# Making relative paths for the data +app = FastAPI() + +# Making relative paths for the data, on windows slashes would have to be turned around. +# It is probably not the best way. relPathTeams = "../AllAboutData/Data/NBAteams.csv" relPathPlayers = "../AllAboutData/Data/Players/" -app = FastAPI() +# func which return dict with team names as keys and full team names as values +def getTeamNames(): + teamsDf = pd.read_csv(relPathTeams).to_dict() + team_names = {} + for el in range(len(teamsDf["name"])): + team_names.update({teamsDf["name"][el] : teamsDf["full_name"][el]}) + return team_names + + + + @app.get("/teams") -def teamsIntoDict(): +def getTeams(): # Getting the data from csv files and then converting into dict to be send out on get request teamsDf = pd.read_csv(relPathTeams).to_dict() @@ -24,3 +37,30 @@ def teamsIntoDict(): "Conference" : teamsDf["conference"][el], "Division" : teamsDf["division"][el]} }) return teams_dict + + +@app.get("/players/{team_name}") +def getPlayers(team_name: str): + + teamNames = getTeamNames() + team_name = team_name.capitalize() # Capitalizing in case url is given as lowercase + if team_name in teamNames.keys(): + + playersDf = pd.read_csv(relPathPlayers+teamNames[team_name]+".csv") + print(playersDf) + playersDf = playersDf.replace({np.nan:None}) # For Json Nan must be replaced + + players_dict = {} + for el in range(len(playersDf["first_name"])): + players_dict.update({el+1 : + {"first_name" : playersDf["first_name"][el], + "last_name" : playersDf["last_name"][el], + "position" : playersDf["position"][el], + "height_feet" : playersDf["height_feet"][el], + "height_inches" : playersDf["height_inches"][el]} }) + + + return players_dict + else: + return {"Error 404" : "Team name Not Found"} + |