-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAPI_Interface.py
85 lines (62 loc) · 2.58 KB
/
API_Interface.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import csv
import pandas as pd
import requests
base_url = 'http://cotaaustin.clubspeedtiming.com/api/index.php/'
with open('TokenKeys.csv', 'r') as file_in:
token_file = csv.reader(file_in, delimiter=',')
tokens = {}
for token in token_file:
tokens[token[0]] = token[1]
def findDriversID(driverName):
request_url = base_url + 'racers/search.json?query=' + driverName.replace(' ', '%20') + '&' + tokens['main_key']
possible_drivers = requests.get(request_url).json()
for driver in possible_drivers['racers']:
driver.update(driver.pop('name'))
df = pd.DataFrame(possible_drivers['racers'])
df.set_index('id', inplace=True)
return df
def getDriversRaces(driverID):
request_url = base_url + 'racers/' + str(driverID) + '/races.json?&' + tokens['main_key']
races_by_driver = requests.get(request_url).json()
df = pd.DataFrame(races_by_driver['heats'])
df.set_index('id', inplace=True)
return df
def getDriversInfo(driverID):
request_url = base_url + 'racers/' + str(driverID) + '.json?' + tokens['main_key']
driver_info = requests.get(request_url).json()
driver_info['racer'].update(driver_info['racer'].pop('name'))
df = pd.DataFrame(driver_info['racer'], index=[0])
df.set_index('id', inplace=True)
return df
def getRaceDriverData(raceID):
request_url = base_url + 'races/' + str(raceID) + '.json?' + tokens['main_key']
race_info = requests.get(request_url).json()
race_driver_info = []
for driver in race_info['race']['racers']:
del driver['laps']
race_driver_info.append(driver)
df = pd.DataFrame(race_driver_info)
df.set_index('id', inplace=True)
return df
def getRaceLapData(raceID):
request_url = base_url + 'races/' + str(raceID) + '.json?' + tokens['main_key']
race_info = requests.get(request_url).json()
driver_lap_dfs = []
for driver in race_info['race']['racers']:
df = pd.DataFrame(driver['laps'])
df.set_index('lap_number', inplace=True)
driver_lap_dfs.append(df)
return driver_lap_dfs
def getRaceResults(raceID):
request_url = base_url + 'races/' + str(raceID) + '.json?' + tokens['main_key']
race_info = requests.get(request_url).json()
df = pd.DataFrame(race_info['scoreboard'])
df.set_index('racer_id', inplace=True)
df.position = df.position.astype(int)
df.sort_values(by='position', inplace=True)
return df
def getRaceData(raceID):
driver_data = getRaceDriverData(raceID)
lap_data = getRaceLapData(raceID)
results = getRaceResults(raceID)
return driver_data, lap_data, results