def get_lineup_info(): schedule = get_schedule() r_dict = {} days = [] for game in schedule: date = game['game_date'] if game['away_id'] == 134 and game['status'] != 'Postponed': box = statsapi.boxscore_data(game['game_id'])['awayBatters'][1:] r_dict = roster(date, r_dict) r_dict = lineup(box, r_dict, date) elif game['home_id'] == 134 and game['status'] != 'Postponed': box = statsapi.boxscore_data(game['game_id'])['homeBatters'][1:] r_dict = roster(date, r_dict) r_dict = lineup(box, r_dict, date) return r_dict
def pitching_everything2019(): sched = statsapi.schedule(start_date='03/28/2019', end_date='09/29/2019', team=137) for i in range(len(sched)): gameId = sched[i]["game_id"] game_date = sched[i]["game_date"] scoredata = statsapi.boxscore_data(gameId) if sched[i]["game_type"] == "R": if game_date != '2019-05-08': for ID in scoredata['playerInfo']: if sched[i]['home_name'] == "San Francisco Giants": if ID in scoredata['home']['players']: if scoredata['home']['players'][ID]['stats'][ 'pitching'] != {}: if scoredata['home']['players'][ID][ 'position']['abbreviation'] == 'P': h_add(game_date, scoredata, ID) else: if ID in scoredata['away']['players']: if scoredata['away']['players'][ID]['stats'][ 'pitching'] != {}: if scoredata['away']['players'][ID][ 'position']['abbreviation'] == 'P': a_add(game_date, scoredata, ID)
def getMerrifieldHitsByGameId(gameId): boxData = statsapi.boxscore_data(gameId) sides = ["away", "home"] batters = [] for i in range(0, len(sides)): side = sides[i] for batterId_int in [ x for x in boxData[side]["batters"] if boxData[side]["players"].get("ID" + str(x), {}).get("battingOrder") ]: batterId = str(batterId_int) batter = { "h": str( boxData[side]["players"]["ID" + batterId]["stats"]["batting"][ "hits" ] ), 'batterId': batterId } batters.append(batter) return batters['batterId' == merrifieldPlayerId]['h']
def getGameInfo(teamID): nextGameData = sa.boxscore_data(sa.next_game(teamID))['teamInfo'] nextGameDate = sa.schedule(game_id = sa.next_game(teamID))[0]['game_date'] if (nextGameData['away']['id'] != teamID): return [nextGameData['away']['teamName'], nextGameDate] else: return [nextGameData['home']['teamName'], nextGameDate]
def exhibition_hitting(): sched = statsapi.schedule(start_date='07/20/2020', end_date='07/21/2020', team=137) print(sched) for i in range(len(sched)): gameId = sched[i]["game_id"] game_date = sched[i]["game_date"] scoredata = statsapi.boxscore_data(gameId) if sched[i]['status'] == "Final: Tied": print("Final: Tied on", game_date) if sched[i]["game_type"] == "S": if sched[i]['status'] == "Final" or sched[i][ 'status'] == "Game Over" or sched[i][ 'status'] == "Final: Tied": for ID in scoredata['playerInfo']: if sched[i]['home_name'] == "San Francisco Giants": if ID in scoredata['home']['players']: if scoredata['home']['players'][ID]['stats'][ 'batting'] != {}: h_add(game_date, scoredata, ID) else: if ID in scoredata['away']['players']: if scoredata['away']['players'][ID]['stats'][ 'batting'] != {}: a_add(game_date, scoredata, ID)
def everything(): year = '2021' today = datetime.date.today() yesterday = today - datetime.timedelta(days=2) tomorrow = today + datetime.timedelta(days=1) sched = statsapi.schedule(start_date=yesterday, end_date=tomorrow) for game in sched: gameId = game["game_id"] boxscore = statsapi.boxscore_data(gameId) gameDate = game["game_date"] if game['doubleheader'] != 'N': gameDate = game["game_date"] + "(" + str( game["game_num"] ) + ")" #adds number to the back of the game date if the game is a part of a doubleheader homeId = game["home_id"] awayId = game["away_id"] homeAbbrev = statsapi.get( 'team', {'teamId': homeId})['teams'][0]['abbreviation'] awayAbbrev = statsapi.get( 'team', {'teamId': awayId})['teams'][0]['abbreviation'] if game['game_type'] == "R": createDir(homeAbbrev, year) #if needed createDir(awayAbbrev, year) #if needed hit(homeAbbrev, awayAbbrev, year, gameDate, game, boxscore) pitch(homeAbbrev, awayAbbrev, year, gameDate, game, boxscore) else: print(game['game_type'])
def getGame(): sched = statsapi.schedule(start_date='07/01/2018', end_date='07/31/2018', team=143, opponent=121) gameId = sched[0]["game_id"] scoredata = statsapi.boxscore_data(gameId) return scoredata
def hitting_everything2020(): today = datetime.date.today() yesterday = today - datetime.timedelta(days=2) tomorrow = today + datetime.timedelta(days=1) team = 137 info = statsapi.get('team', {'teamId': team}) name = info['teams'][0]['name'] abbrev = info['teams'][0]['abbreviation'] sched = statsapi.schedule(start_date='07/23/2020', end_date='9/27/2020', team=team) for i in range(len(sched)): gameId = sched[i]["game_id"] scoredata = statsapi.boxscore_data(gameId) game_date = sched[i]["game_date"] if sched[i]['doubleheader'] == 'Y': game_date = sched[i]["game_date"] + "(" + str( sched[i]["game_num"]) + ")" if path.exists("Teams/" + abbrev + "/2020/h_dates.txt"): with open("Teams/" + abbrev + "/2020/h_dates.txt", "r") as FILE: content = FILE.read() try: content_dict = eval(content) except Exception as e: print("we got an error ", e) print("Database Error ") else: with open("Teams/" + abbrev + "/2020/h_dates.txt", "w") as FILE: FILE.write("{'dates':[]}") with open("Teams/" + abbrev + "/2020/h_dates.txt", "r") as FILE: content = FILE.read() try: content_dict = eval(content) except Exception as e: print("we got an error ", e) print("Database Error ") if game_date not in content_dict['dates'] and ( sched[i]['status'] == "Final" or sched[i]['status'] == "Game Over"): if sched[i]["game_type"] == "R": for ID in scoredata['playerInfo']: if sched[i]['home_name'] == name: if ID in scoredata['home']['players']: if scoredata['home']['players'][ID]['stats'][ 'batting'] != {}: h_add(game_date, scoredata, ID, abbrev) else: if ID in scoredata['away']['players']: if scoredata['away']['players'][ID]['stats'][ 'batting'] != {}: a_add(game_date, scoredata, ID, abbrev) with open("Teams/" + abbrev + "/2020/h_dates.txt", "w") as f: try: content_dict['dates'].append(game_date) f.write(str(content_dict)) except Exception as e: print("we got an error ", e) print("Database Error ")
def handle(self, *args, **options): BoxScore.objects.all().delete() games = Game.objects.all() for game in games: try: home_stats = statsapi.boxscore_data(gamePk=game.game_id)['home'] away_stats = statsapi.boxscore_data(gamePk=game.game_id)['away'] home_batting_totals = home_stats['teamStats']['batting'] away_batting_totals = away_stats['teamStats']['batting'] home_pitching_totals = home_stats['teamStats']['pitching'] away_pitching_totals = away_stats['teamStats']['pitching'] home_pitchers = home_stats['pitchers'] away_pitchers = away_stats['pitchers'] home_hitters = home_stats['batters'] away_hitters = away_stats['batters'] home_player_pitching = {} for p_id in home_pitchers: home_player_pitching.update({p_id: home_stats['players']['ID' + str(p_id)]}) away_player_pitching = {} for p_id in away_pitchers: away_player_pitching.update({p_id: away_stats['players']['ID' + str(p_id)]}) home_player_hitting = {} for p_id in home_hitters: home_player_hitting.update({p_id: home_stats['players']['ID' + str(p_id)]}) away_player_hitting = {} for p_id in away_hitters: away_player_hitting.update({p_id: away_stats['players']['ID' + str(p_id)]}) boxscore = BoxScore(game=game, boxscore_id=game.game_id, home_hitting_totals=home_batting_totals, away_hitting_totals=away_batting_totals, home_pitching_totals=home_pitching_totals, away_pitching_totals=away_pitching_totals, home_player_hitting=home_player_hitting, away_player_hitting=away_player_hitting, home_player_pitching=home_player_pitching, away_player_pitching=away_player_pitching) boxscore.save() print("Success") except: print("failed")
def get_csv_schedule(): schedule = get_schedule() games = {} test = schedule[11] a = statsapi.boxscore_data(test['game_id'])['awayBatters'][1:] for batter in a: if not batter['substitution']: print("{}\t{}\t{}".format(int(batter['battingOrder'])/100, batter['position'], batter['name'])) games_to_csv(games)
def check_home_or_away(game_id: int, team_id: int): try: away_team_id = statsapi.boxscore_data(game_id).get("away").get( "team").get("id") if away_team_id == team_id: return "away" else: return "home" except requests.exceptions.HTTPError: return None
def box_score(): startdate = '02/28/2021' enddate = '10/01/2021' now = datetime.datetime.now() bs = statsapi.boxscore_data(605799, timecode=now) print(bs) for key in bs.keys(): print(key) if type(bs[key]) is dict: for k in bs[key].keys(): print('\t', k) print(bs['home']['battingOrder'])
def boxscores(self): schedule = statsapi.schedule(start_date=convert_date(self.date)) gamePks = [s["game_id"] for s in schedule] for gamePk in gamePks: game_json = statsapi.boxscore_data(gamePk) player_teams = self._player_metadata(gamePk=gamePk) for p in ["Batters", "Pitchers"]: self._stack_results( player_type=p, game_json=game_json, gamePk=gamePk, player_teams=player_teams, )
def getplayerid(): lastname = input("Player Last Name: ") sched = statsapi.schedule(start_date='02/22/2020', end_date='03/11/2020', team=137) for i in range(len(sched)): gameId = sched[i]["game_id"] scoredata = statsapi.boxscore_data(gameId) length_b_home = len(scoredata['homeBatters']) length_b_away = len(scoredata['awayBatters']) length_p_home = len(scoredata['homePitchers']) length_p_away = len(scoredata['awayPitchers']) if sched[i]['home_name'] == 'San Francisco Giants': for i in range(1, length_p_home): pitcher_name = scoredata['homePitchers'][i]['name'] player_id = 'ID' + str( scoredata['homePitchers'][i]['personId']) fullname = scoredata['playerInfo'][player_id]['fullName'] if lastname == pitcher_name: print(str(pitcher_name), ": " + str(player_id)) to_txtp(fullname, player_id) input() for i in range(1, length_b_home): batter_name = scoredata['homeBatters'][i]['name'] player_id = 'ID' + str(scoredata['homeBatters'][i]['personId']) fullname = scoredata['playerInfo'][player_id]['fullName'] if lastname == batter_name: print(str(batter_name), ": " + str(player_id)) to_txtb(fullname, player_id) input() else: for i in range(1, length_p_away): pitcher_name = scoredata['awayPitchers'][i]['name'] player_id = 'ID' + str( scoredata['awayPitchers'][i]['personId']) fullname = scoredata['playerInfo'][player_id]['fullName'] if lastname == pitcher_name: print(str(pitcher_name), ": " + str(player_id)) to_txtp(fullname, player_id) input() for i in range(1, length_b_away): batter_name = scoredata['awayBatters'][i]['name'] player_id = 'ID' + str(scoredata['awayBatters'][i]['personId']) fullname = scoredata['playerInfo'][player_id]['fullName'] if lastname == batter_name: print(str(batter_name), ": " + str(player_id)) to_txtb(fullname, player_id) input()
def box_scores(): """ Use MLB Stats API to extract daily MLB box scores for use in Live Game Watchability Index calculation Returns: {Date: {Home-Away First Code: (Home Score, Away Score), ..., Home-Away Last Code: (Home Score, Away Score)}} """ # Create dynamic variable to get yesterday's box scores yesterday = (datetime.datetime.today() - timedelta(days=1)).strftime('%Y-%m-%d') schedule = statsapi.schedule(yesterday) # Retrieve values from schedule dictionary game_info = [list(schedule[i].values()) for i in range(len(schedule))] # Extract game codes from schedule dictionary values game_codes = [game_info[i][0] for i in range(len(game_info))] # Use game codes to retrieve all info for correct games home_away = [] for i in range(len(game_codes)): home_away.append(statsapi.boxscore_data(game_codes[i])) # Use game codes to retrieve box scores for correct games boxes = [] for i in range(len(game_codes)): home_box = (statsapi.linescore(game_codes[i]).splitlines()[2]) away_box = (statsapi.linescore(game_codes[i]).splitlines()[1]) boxes.extend([home_box, away_box]) # Create dictionary with Home-Away concatenation as key and scores as values box_score = {} for i in range(len(home_away)): home_away_codes = (list(home_away[i]['teamInfo']['home'].values())[1] + list(home_away[i]['teamInfo']['away'].values())[1]) box_score.update({home_away_codes: (boxes[i * 2], boxes[(i * 2) + 1])}) # Create main dictionary with date as key and box score dictionary as value score_dict = {yesterday: box_score} return score_dict
def avgobp(): """Print out averages and on base percentage for players that showed up in the box scores of the games played within the start and end date specified in sched""" sched = statsapi.schedule(start_date='09/01/2019', team=137) for i in range(len(sched)): gameId = sched[i]["game_id"] game_date = sched[i]["game_date"] game_result = sched[i]["summary"] scoredata = statsapi.boxscore_data(gameId) length_home = len(scoredata['homeBatters']) length_away = len(scoredata['awayBatters']) title = game_result, "/", gameId title_length = len(str(title)) - 8 #check if regular season if sched[i]["game_type"] == "R": print("") print((title_length) * "=") print(game_result, "/", gameId) print((title_length) * "=") print("") if sched[i]['home_name'] == "San Francisco Giants": for i in range(1, length_home): average = (scoredata['homeBatters'][i]['avg']) on_base_percentage = (scoredata['homeBatters'][i]['obp']) player_name = (scoredata['homeBatters'][i]['name']) print(player_name + ":", "AVG -", average, "/", "OBP -", on_base_percentage) else: for i in range(1, length_away): average = (scoredata['awayBatters'][i]['avg']) on_base_percentage = (scoredata['awayBatters'][i]['obp']) player_name = (scoredata['awayBatters'][i]['name']) print(player_name + ":", "AVG -", average, "/", "OBP -", on_base_percentage) print("") print((title_length) * "=")
def mlb_data_last_game(preferred_team): last_game_date = datetime.datetime.today() - timedelta(days=1) game_data_set = {} # Read scoreboard options from config.json if it exists #config = get_config("config") #teamData = statsapi.lookup_team(config['preferred']['teams'][0]) for team in statsapi.lookup_team(preferred_team): last_game_date = last_game_date.strftime('%m/%d/%Y') last_gameData = statsapi.schedule(date=last_game_date, start_date=None, end_date=None, team=team['id'], opponent="", sportId=1, game_id=None) if len(last_gameData) > 0: last_boxscore = statsapi.boxscore_data(last_gameData[0]['game_id'], timecode=None) game_data_set['home_id'] = last_gameData[0]['home_id'] game_data_set['away_id'] = last_gameData[0]['away_id'] game_data_set['status'] = last_gameData[0]['status'] game_data_set['home_score'] = last_gameData[0]['home_score'] game_data_set['home_hits'] = last_boxscore['home']['teamStats'][ 'batting']['hits'] game_data_set['away_score'] = last_gameData[0]['away_score'] game_data_set['away_hits'] = last_boxscore['away']['teamStats'][ 'batting']['hits'] break return game_data_set
def box_upload(game_id): game = mlb.boxscore_data(game_id) game_dict = { 'gameid': game_id, 'home_team_runs': game['homeBattingTotals']['r'], 'away_team_runs': game['awayBattingTotals']['r'], } for item in game['gameBoxInfo']: if item['label'] == 'Venue': game_dict['venue'] = (item['value']) elif item['label'] == 'Weather': game_dict['weather_category'] = item['value'].split( ',')[1].lower().strip().strip('.') game_dict['temp'] = int(item['value'].split(',')[0].split(' ')[0]) elif item['label'] == 'Wind': game_dict['wind_mph'] = int( item['value'].split(',')[0].split(' ')[0]) game_dict['wind_direction'] = item['value'].split( ',')[1].lower().strip().strip('.') else: pass return game_dict
import statsapi TWINS_TEAM_ID = 142 yesterday = (datetime.datetime.now(pytz.timezone("US/Central")) - datetime.timedelta(days=1)).date() game_ids = [ game['game_id'] for game in statsapi.schedule(date=yesterday, team=TWINS_TEAM_ID) ] # did the twins get any doubles? DOUBLE = False for game_id in game_ids: boxscore = statsapi.boxscore_data(game_id) if boxscore['teamInfo']['away']['id'] == TWINS_TEAM_ID: home_or_away = 'away' elif boxscore['teamInfo']['home']['id'] == TWINS_TEAM_ID: home_or_away = 'home' else: raise ValueError("Cannot Find TWINs for this game") doubles = boxscore[home_or_away]['teamStats']['batting']['doubles'] if doubles > 0: DOUBLE = True break if DOUBLE:
def _getPlayerStatsForGame(self, gameId): box_data = statsapi.boxscore_data(gameId) box_name_to_id = {} for v in box_data['playerInfo'].values(): box_name_to_id[v['boxscoreName']] = v['id'] self.data.playerIdToName[v['id']] = v['fullName'] self.data.playerNameToId[v['fullName']] = v['id'] game_info = { v['label']: v.get('value') for v in box_data['gameBoxInfo'] } raw_home_info = [] raw_away_info = [] for field in box_data['home']['info']: if field.get('title', None) == 'BATTING': raw_home_info = field['fieldList'] for field in box_data['away']['info']: if field.get('title', None) == 'BATTING': raw_home_info = field['fieldList'] home_info = {v['label']: v.get('value') for v in raw_home_info} away_info = {v['label']: v.get('value') for v in raw_away_info} additional_batter_data = makehash() keys = game_info.keys() def parseFromInfo(key, info): if key in info: players = info[key].split(';') for player in players: res = re.search(r'(\D+) (\d )*(\(.*\))', player) group = res.groups() additional_batter_data[box_name_to_id[group[0].strip( )]][key] = int(group[1].strip()) if group[1] else 1 parseFromInfo(u'HBP', game_info) parseFromInfo(u'HR', home_info) parseFromInfo(u'2B', home_info) parseFromInfo(u'3B', home_info) parseFromInfo(u'SB', home_info) parseFromInfo(u'HR', away_info) parseFromInfo(u'2B', away_info) parseFromInfo(u'3B', away_info) parseFromInfo(u'SB', away_info) for batter_data in box_data['awayBatters'] + box_data['homeBatters']: pid = batter_data['personId'] if not pid: continue batter_model = BattingData(batter_data) # Parse out HRs, SBs, doubles, triples, hrs additional_data = additional_batter_data[pid] batter_model.hr = additional_data['HR'] or 0 batter_model.dbl = additional_data['2B'] or 0 batter_model.trpl = additional_data['3B'] or 0 batter_model.sb = additional_data['SB'] or 0 batter_model.hbp = additional_data['HBP'] or 0 if not pid in self.data.playerGameData: self.data.playerGameData[pid] = {'batting': {}, 'pitching': {}} self.data.playerGameData[pid]['batting'][gameId] = batter_model for pitcher_data in box_data['awayPitchers'] + box_data['homePitchers']: res = re.search('([^\(]+)(\((\w).*)*', pitcher_data['namefield']).groups() name = res[0].strip() if not name in box_name_to_id: continue pitcherId = box_name_to_id[name] pitcher_model = PitcherData(pitcher_data) pitcher_model.w = 1 if res[2] == 'W' else 0 if not pitcherId in self.data.playerGameData: self.data.playerGameData[pitcherId] = { 'batting': {}, 'pitching': {} } self.data.playerGameData[pitcherId]['pitching'][ gameId] = pitcher_model
import statsapi # Change start_date and end_date to get the games you want games = statsapi.schedule(start_date='04/01/2021', end_date='04/01/2021') for game in games: box = statsapi.boxscore_data(game.get('game_id'), timecode=None) game['home_batters'] = box.get('homeBatters') game['away_batters'] = box.get('awayBatters') for x in game['home_batters']: if x['personId'] != '0' and x['ab'] != 'AB': if int(x['ab']) == 0: x['game_ba'] = 'N/A' else: x['game_ba'] = str(round(int(x['h']) / int(x['ab']), 3)) for x in game['away_batters']: if x['personId'] != '0' and x['ab'] != 'AB': if int(x['ab']) == 0: x['game_ba'] = 'N/A' else: x['game_ba'] = str(round(int(x['h']) / int(x['ab']), 3)) # # d_home = box.get('homeBatters') # print(d_home) # temp = list() # for x in d_home: # if x.get('ab').isnumeric(): # if 0 < int(x.get('ab')) < 9: # temp.append([d_home[0].get('name').replace(' Batters', ''), 'home', x.get('personId'), x.get('name'), x.get('battingOrder'), x.get('ab'), x.get('h')]) # print(temp) # d_away = box.get('awayBatters')
def hitting(search_player): dates = [] averages = [] on_base_percentage = [] slugging = [] on_plus_slugging = [] at_bats = [] strikeouts = [] hits = [] walks = [] runs = [] runs_batted_in = [] stolen_bases = [] left_on_base = [] doubles = [] triples = [] homers = [] sched = statsapi.schedule(start_date='03/28/2019', end_date='09/29/2019', team=137) for i in range(len(sched)): gameId = sched[i]["game_id"] game_date = sched[i]["game_date"] game_result = sched[i]["summary"] scoredata = statsapi.boxscore_data(gameId) length_home = len(scoredata['homeBatters']) length_away = len(scoredata['awayBatters']) if sched[i]["game_type"] == "R": #all home games if sched[i]['home_name'] == "San Francisco Giants": for i in range(1, length_home): player_name = (scoredata['homeBatters'][i]['name']) avg = (scoredata['homeBatters'][i]['avg']) obp = (scoredata['homeBatters'][i]['obp']) ops = scoredata['homeBatters'][i]['ops'] slg = scoredata['homeBatters'][i]['slg'] k = scoredata['homeBatters'][i]['k'] ab = scoredata['homeBatters'][i]['ab'] h = scoredata['homeBatters'][i]['h'] bb = scoredata['homeBatters'][i]['bb'] r = scoredata['homeBatters'][i]["r"] rbi = scoredata['homeBatters'][i]["rbi"] sb = scoredata['homeBatters'][i]['sb'] lob = scoredata['homeBatters'][i]['lob'] double = scoredata['homeBatters'][i]['doubles'] triple = scoredata['homeBatters'][i]['triples'] hr = scoredata['homeBatters'][i]['hr'] if player_name == search_player: dates.append(game_date) averages.append(float(avg)) on_base_percentage.append(float(obp)) slugging.append(float(slg)) strikeouts.append(float(k)) at_bats.append(int(ab)) hits.append(int(h)) walks.append(int(bb)) runs.append(int(r)) runs_batted_in.append(int(rbi)) stolen_bases.append(int(sb)) left_on_base.append(int(lob)) doubles.append(int(double)) triples.append(int(triple)) homers.append(int(hr)) #all_away games else: for i in range(1, length_away): player_name = (scoredata['awayBatters'][i]['name']) avg = (scoredata['awayBatters'][i]['avg']) obp = (scoredata['awayBatters'][i]['obp']) ops = scoredata['awayBatters'][i]['ops'] slg = scoredata['awayBatters'][i]['slg'] k = scoredata['awayBatters'][i]['k'] ab = scoredata['awayBatters'][i]['ab'] h = scoredata['awayBatters'][i]['h'] bb = scoredata['awayBatters'][i]['bb'] r = scoredata['awayBatters'][i]["r"] rbi = scoredata['awayBatters'][i]["rbi"] sb = scoredata['awayBatters'][i]['sb'] lob = scoredata['awayBatters'][i]['lob'] lob = scoredata['awayBatters'][i]['lob'] double = scoredata['awayBatters'][i]['doubles'] triple = scoredata['awayBatters'][i]['triples'] hr = scoredata['awayBatters'][i]['hr'] if player_name == search_player: dates.append(game_date) averages.append(float(avg)) on_base_percentage.append(float(obp)) slugging.append(float(slg)) strikeouts.append(float(k)) at_bats.append(int(ab)) hits.append(int(h)) walks.append(int(bb)) runs.append(int(r)) runs_batted_in.append(int(rbi)) stolen_bases.append(int(sb)) left_on_base.append(int(lob)) doubles.append(int(double)) triples.append(int(triple)) homers.append(int(hr)) return dates, on_base_percentage
def hitting_everything2019(): players = [ 'Alex Dickerson', 'Aramis Garcia', 'Austin Slater', 'Brandon Belt', 'Brandon Crawford', 'Buster Posey', 'Chris Shaw', 'Donovan Solano', 'Evan Longoria', 'Hunter Pence', 'Jaylin Davis', 'Joey Rickard', 'Mauricio Dubon', 'Mike Yastrzemski', 'Pablo Sandoval', 'Wilmer Flores' ] for i in range(len(players)): playername = players[i] with open("2019/" + str(playername) + ".txt", "r") as FILE: content = FILE.read() try: content_dict = eval(content) except Exception as e: print("we got an error ", e) print("Database Error ") else: print("read success for", playername) ID = content_dict[playername]["ID"] #progressive sched = statsapi.schedule(start_date='03/28/2019', end_date='09/29/2019', team=137) for i in range(len(sched)): gameId = sched[i]["game_id"] game_date = sched[i]["game_date"] scoredata = statsapi.boxscore_data(gameId) if sched[i]["game_type"] == "R": if game_date != '2019-05-08': if sched[i]['home_name'] == "San Francisco Giants": if ID in scoredata['home']['players']: if scoredata['home']['players'][ID]['stats'][ 'batting'] != {}: #progressive p_averages = float( scoredata['home']['players'][ID] ['seasonStats']['batting']['avg']) p_obp = float( scoredata['home']['players'][ID] ['seasonStats']['batting']['obp']) p_slg = float( scoredata['home']['players'][ID] ['seasonStats']['batting']['slg']) p_ops = float( scoredata['home']['players'][ID] ['seasonStats']['batting']['ops']) p_runs = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['runs']) p_doubles = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['doubles']) p_triples = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['triples']) p_homeruns = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['homeRuns']) p_strikeouts = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['strikeOuts']) p_walks = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['baseOnBalls']) p_hits = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['hits']) p_ab = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['atBats']) p_sb = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['stolenBases']) p_rbi = int(scoredata['home']['players'][ID] ['seasonStats']['batting']['rbi']) p_lob = int( scoredata['home']['players'][ID] ['seasonStats']['batting']['leftOnBase']) #per game pg_ab = int(scoredata['home']['players'][ID] ['stats']['batting']['atBats']) pg_strikeouts = int( scoredata['home']['players'][ID]['stats'] ['batting']['strikeOuts']) pg_hits = int(scoredata['home']['players'][ID] ['stats']['batting']['hits']) pg_walks = int( scoredata['home']['players'][ID]['stats'] ['batting']['baseOnBalls']) pg_runs = int(scoredata['home']['players'][ID] ['stats']['batting']['runs']) pg_rbi = int(scoredata['home']['players'][ID] ['stats']['batting']['rbi']) pg_sb = int( scoredata['home']['players'][ID]['stats'] ['batting']['stolenBases']) pg_lob = int( scoredata['home']['players'][ID]['stats'] ['batting']['leftOnBase']) pg_doubles = int( scoredata['home']['players'][ID]['stats'] ['batting']['doubles']) pg_triples = int( scoredata['home']['players'][ID]['stats'] ['batting']['triples']) pg_homeruns = int( scoredata['home']['players'][ID]['stats'] ['batting']['homeRuns']) p_categories = [ p_averages, p_obp, p_slg, p_ops, p_runs, p_doubles, p_triples, p_homeruns, p_strikeouts, p_walks, p_hits, p_ab, p_sb, p_rbi, p_lob ] pg_categories = [ pg_ab, pg_strikeouts, pg_hits, pg_walks, pg_runs, pg_rbi, pg_sb, pg_lob, pg_doubles, pg_triples, pg_homeruns ] p_names = [ 'averages', 'obp', 'slg', 'ops', 'runs', 'doubles', 'triples', 'homeruns', 'strikeouts', 'walks', 'hits', 'ab', 'sb', 'rbi', 'lob' ] pg_names = [ 'ab', 'strikeouts', 'hits', 'walks', 'runs', 'rbi', 'sb', 'lob', 'doubles', 'triples', 'homeruns' ] if game_date == '2019-07-15': print("Here I am") if content_dict[playername]['2019'][ 'dates'].count('2019-07-15') < 2: print(content_dict[playername]['2019'] ['dates'].count('2019-07-15')) with open( "2019/" + str(playername) + ".txt", "w") as f: try: content_dict[playername][ '2019']['dates'].append( game_date) for i in range( len(p_categories)): content_dict[playername][ '2019']['progression'][ p_names[i]].append( p_categories[i] ) for i in range( len(pg_categories)): content_dict[playername][ '2019']['per_game'][ pg_names[i]].append( pg_categories[ i]) f.write(str(content_dict)) print("Write Success") except Exception as e: print("we got an error ", e) print("Database Error ") else: if game_date not in content_dict[ playername]['2019']['dates']: print("Yes") with open( "2019/" + str(playername) + ".txt", "w") as f: try: content_dict[playername][ '2019']['dates'].append( game_date) for i in range( len(p_categories)): content_dict[playername][ '2019']['progression'][ p_names[i]].append( p_categories[i] ) for i in range( len(pg_categories)): content_dict[playername][ '2019']['per_game'][ pg_names[i]].append( pg_categories[ i]) f.write(str(content_dict)) print("Write Success") except Exception as e: print("we got an error ", e) print("Database Error ") else: pass print("Already in for", playername) else: if ID in scoredata['away']['players']: if scoredata['away']['players'][ID]['stats'][ 'batting'] != {}: #progressive p_averages = float( scoredata['away']['players'][ID] ['seasonStats']['batting']['avg']) p_obp = float( scoredata['away']['players'][ID] ['seasonStats']['batting']['obp']) p_slg = float( scoredata['away']['players'][ID] ['seasonStats']['batting']['slg']) p_ops = float( scoredata['away']['players'][ID] ['seasonStats']['batting']['ops']) p_runs = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['runs']) p_doubles = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['doubles']) p_triples = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['triples']) p_homeruns = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['homeRuns']) p_strikeouts = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['strikeOuts']) p_walks = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['baseOnBalls']) p_hits = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['hits']) p_ab = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['atBats']) p_sb = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['stolenBases']) p_rbi = int(scoredata['away']['players'][ID] ['seasonStats']['batting']['rbi']) p_lob = int( scoredata['away']['players'][ID] ['seasonStats']['batting']['leftOnBase']) #per game pg_ab = scoredata['away']['players'][ID][ 'stats']['batting']['atBats'] pg_strikeouts = scoredata['away']['players'][ ID]['stats']['batting']['strikeOuts'] pg_hits = scoredata['away']['players'][ID][ 'stats']['batting']['hits'] pg_walks = scoredata['away']['players'][ID][ 'stats']['batting']['baseOnBalls'] pg_runs = scoredata['away']['players'][ID][ 'stats']['batting']['runs'] pg_rbi = scoredata['away']['players'][ID][ 'stats']['batting']['rbi'] pg_sb = scoredata['away']['players'][ID][ 'stats']['batting']['stolenBases'] pg_lob = scoredata['away']['players'][ID][ 'stats']['batting']['leftOnBase'] pg_doubles = scoredata['away']['players'][ID][ 'stats']['batting']['doubles'] pg_triples = scoredata['away']['players'][ID][ 'stats']['batting']['triples'] pg_homeruns = scoredata['away']['players'][ID][ 'stats']['batting']['homeRuns'] p_categories = [ p_averages, p_obp, p_slg, p_ops, p_runs, p_doubles, p_triples, p_homeruns, p_strikeouts, p_walks, p_hits, p_ab, p_sb, p_rbi, p_lob ] pg_categories = [ pg_ab, pg_strikeouts, pg_hits, pg_walks, pg_runs, pg_rbi, pg_sb, pg_lob, pg_doubles, pg_triples, pg_homeruns ] p_names = [ 'averages', 'obp', 'slg', 'ops', 'runs', 'doubles', 'triples', 'homeruns', 'strikeouts', 'walks', 'hits', 'ab', 'sb', 'rbi', 'lob' ] pg_names = [ 'ab', 'strikeouts', 'hits', 'walks', 'runs', 'rbi', 'sb', 'lob', 'doubles', 'triples', 'homeruns' ] if game_date == '2019-07-15': print("Here I am") if content_dict[playername]['2019'][ 'dates'].count('2019-07-15') < 2: print(content_dict[playername]['2019'] ['dates'].count('2019-07-15')) with open( "2019/" + str(playername) + ".txt", "w") as f: try: content_dict[playername][ '2019']['dates'].append( game_date) for i in range( len(p_categories)): content_dict[playername][ '2019']['progression'][ p_names[i]].append( p_categories[i] ) for i in range( len(pg_categories)): content_dict[playername][ '2019']['per_game'][ pg_names[i]].append( pg_categories[ i]) f.write(str(content_dict)) print("Write Success") except Exception as e: print("we got an error ", e) print("Database Error ") else: if game_date not in content_dict[ playername]['2019']['dates']: print("Yes") with open( "2019/" + str(playername) + ".txt", "w") as f: try: content_dict[playername][ '2019']['dates'].append( game_date) for i in range( len(p_categories)): content_dict[playername][ '2019']['progression'][ p_names[i]].append( p_categories[i] ) for i in range( len(pg_categories)): content_dict[playername][ '2019']['per_game'][ pg_names[i]].append( pg_categories[ i]) f.write(str(content_dict)) print("Write Success") except Exception as e: print("we got an error ", e) print("Database Error ") else: pass print("Already in for", playername)
def pitching_everything2019(): players = [] for i in range(len(players)): playername = players[i] with open("2019/" + str(playername) + ".txt", "r") as FILE: content = FILE.read() try: content_dict = eval(content) except Exception as e: print("we got an error ", e) print("Database Error ") else: print("read succees for", playername) ID = content_dict[playername]["ID"] sched = statsapi.schedule(start_date='03/28/2019', end_date='09/29/2019', team=137) for i in range(len(sched)): gameId = sched[i]["game_id"] game_date = sched[i]["game_date"] scoredata = statsapi.boxscore_data(gameId) if sched[i]["game_type"] == "R": if sched[i]['home_name'] == "San Francisco Giants": if ID in scoredata['home']['players']: if scoredata['home']['players'][ID]['stats'][ 'pitching'] != {}: #progressive p_era = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['era'] p_innings = ( scoredata['home']['players'][ID]['seasonStats'] ['pitching']['inningsPitched']) p_hits = (scoredata['home']['players'][ID] ['seasonStats']['pitching']['hits']) p_runs = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['runs'] p_earned_runs = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['earnedRuns'] p_walks = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['baseOnBalls'] p_strikeouts = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['strikeOuts'] p_homeruns = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['homeRuns'] p_doubles = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['doubles'] p_triples = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['triples'] p_ab = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['atBats'] p_obp = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['obp'] p_wins = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['wins'] p_losses = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['losses'] p_holds = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['holds'] p_blown_saves = scoredata['home']['players'][ID][ 'seasonStats']['pitching']['blownSaves'] pg_innings = scoredata['home']['players'][ID][ 'stats']['pitching']['inningsPitched'] pg_hits = scoredata['home']['players'][ID][ 'stats']['pitching']['hits'] pg_runs = scoredata['home']['players'][ID][ 'stats']['pitching']['runs'] pg_earned_runs = scoredata['home']['players'][ID][ 'stats']['pitching']['earnedRuns'] pg_walks = scoredata['home']['players'][ID][ 'stats']['pitching']['baseOnBalls'] pg_strikeouts = scoredata['home']['players'][ID][ 'stats']['pitching']['strikeOuts'] pg_homeruns = scoredata['home']['players'][ID][ 'stats']['pitching']['homeRuns'] pg_pitches = scoredata['home']['players'][ID][ 'stats']['pitching']['pitchesThrown'] pg_strikes = scoredata['home']['players'][ID][ 'stats']['pitching']['strikes'] p_categories = [ p_era, p_innings, p_hits, p_runs, p_earned_runs, p_walks, p_strikeouts, p_homeruns, p_doubles, p_triples, p_ab, p_obp, p_wins, p_losses, p_holds, p_blown_saves ] pg_categories = [ pg_innings, pg_hits, pg_runs, pg_earned_runs, pg_walks, pg_strikeouts, pg_homeruns, pg_pitches, pg_strikes ] p_names = [ 'era', 'innings', 'hits', 'runs', 'earned_runs', 'walks', 'strikeouts', 'homeruns', 'doubles', 'triples', 'ab', 'obp', 'wins', 'losses', 'holds', 'blown_saves' ] pg_names = [ 'innings', 'hits', 'runs', 'earned_runs', 'walks', 'strikeouts', 'homeruns', 'pitches', 'strikes' ] if game_date == '2019-07-15': print("Here I am") if content_dict[playername]['2019'][ 'dates'].count('2019-07-15') < 1: print(content_dict[playername]['2019'] ['dates'].count('2019-07-15')) with open( "2019/" + str(playername) + ".txt", "w") as f: try: content_dict[playername]['2019'][ 'dates'].append(game_date) for i in range(len(p_categories)): content_dict[playername][ '2019']['progression'][ p_names[i]].append( p_categories[i]) for i in range(len(pg_categories)): content_dict[playername][ '2019']['per_game'][ pg_names[i]].append( pg_categories[i]) f.write(str(content_dict)) print("Write Success") except Exception as e: print("we got an error ", e) else: if game_date not in content_dict[playername][ '2019']['dates']: print("Yes") with open( "2019/" + str(playername) + ".txt", "w") as f: try: content_dict[playername]['2019'][ 'dates'].append(game_date) for i in range(len(p_categories)): content_dict[playername][ '2019']['progression'][ p_names[i]].append( p_categories[i]) for i in range(len(pg_categories)): content_dict[playername][ '2019']['per_game'][ pg_names[i]].append( pg_categories[i]) f.write(str(content_dict)) print("Write Success") except Exception as e: print("we got an error ", e) else: pass print("Already In") else: if ID in scoredata['away']['players']: if scoredata['away']['players'][ID]['stats'][ 'pitching'] != {}: #progressive p_era = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['era'] p_innings = ( scoredata['away']['players'][ID]['seasonStats'] ['pitching']['inningsPitched']) p_hits = (scoredata['away']['players'][ID] ['seasonStats']['pitching']['hits']) p_runs = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['runs'] p_earned_runs = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['earnedRuns'] p_walks = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['baseOnBalls'] p_strikeouts = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['strikeOuts'] p_homeruns = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['homeRuns'] p_doubles = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['doubles'] p_triples = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['triples'] p_ab = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['atBats'] p_obp = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['obp'] p_wins = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['wins'] p_losses = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['losses'] p_holds = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['holds'] p_blown_saves = scoredata['away']['players'][ID][ 'seasonStats']['pitching']['blownSaves'] pg_innings = scoredata['away']['players'][ID][ 'stats']['pitching']['inningsPitched'] pg_hits = scoredata['away']['players'][ID][ 'stats']['pitching']['hits'] pg_runs = scoredata['away']['players'][ID][ 'stats']['pitching']['runs'] pg_earned_runs = scoredata['away']['players'][ID][ 'stats']['pitching']['earnedRuns'] pg_walks = scoredata['away']['players'][ID][ 'stats']['pitching']['baseOnBalls'] pg_strikeouts = scoredata['away']['players'][ID][ 'stats']['pitching']['strikeOuts'] pg_homeruns = scoredata['away']['players'][ID][ 'stats']['pitching']['homeRuns'] pg_pitches = scoredata['away']['players'][ID][ 'stats']['pitching']['pitchesThrown'] pg_strikes = scoredata['away']['players'][ID][ 'stats']['pitching']['strikes'] p_categories = [ p_era, p_innings, p_hits, p_runs, p_earned_runs, p_walks, p_strikeouts, p_homeruns, p_doubles, p_triples, p_ab, p_obp, p_wins, p_losses, p_holds, p_blown_saves ] pg_categories = [ pg_innings, pg_hits, pg_runs, pg_earned_runs, pg_walks, pg_strikeouts, pg_homeruns, pg_pitches, pg_strikes ] p_names = [ 'era', 'innings', 'hits', 'runs', 'earned_runs', 'walks', 'strikeouts', 'homeruns', 'doubles', 'triples', 'ab', 'obp', 'wins', 'losses', 'holds', 'blown_saves' ] pg_names = [ 'innings', 'hits', 'runs', 'earned_runs', 'walks', 'strikeouts', 'homeruns', 'pitches', 'strikes' ] if game_date == '2019-07-15': print("Here I am") if content_dict[playername]['2019'][ 'dates'].count('2019-07-15') < 1: print(content_dict[playername]['2019'] ['dates'].count('2019-07-15')) with open( "2019/" + str(playername) + ".txt", "w") as f: try: content_dict[playername]['2019'][ 'dates'].append(game_date) for i in range(len(p_categories)): content_dict[playername][ '2019']['progression'][ p_names[i]].append( p_categories[i]) for i in range(len(pg_categories)): content_dict[playername][ '2019']['per_game'][ pg_names[i]].append( pg_categories[i]) f.write(str(content_dict)) print("Write Success") except Exception as e: print("we got an error ", e) else: if game_date not in content_dict[playername][ '2019']['dates']: print("Yes") with open( "2019/" + str(playername) + ".txt", "w") as f: try: content_dict[playername]['2019'][ 'dates'].append(game_date) for i in range(len(p_categories)): content_dict[playername][ '2019']['progression'][ p_names[i]].append( p_categories[i]) for i in range(len(pg_categories)): content_dict[playername][ '2019']['per_game'][ pg_names[i]].append( pg_categories[i]) f.write(str(content_dict)) print("Write Success") except Exception as e: print("we got an error ", e) else: pass print("Already In")