def getEligiblePlayersJSON(self): f = open(self.gameJSONFilename) data = json.load(f) f.close() mlb = MLB(self.sqlContext, self.dataDirectory, self.gameDate, isReadOnly=False) lineups = mlb.getLineups() for key in data: #print "key=", key fields = data[key] #print "item=", fields # [u'2B', u'Ed Lucas', u'83325', u'606', u'1000', u'2500', 1.3, 26, False, 0, u''] player = {} player['key'] = key player['position'] = fields[0] player['name'] = fields[1] player['game_id'] = fields[2] player['team_id'] = fields[3] player['id3'] = fields[4] player['salary'] = float(fields[5]) player['points'] = fields[6] player['num_games'] = fields[7] player['some_boolean'] = fields[8] player['player_status'] = fields[9] player['injury'] = fields[10] player['team'] = mlb.getTeamFromFanduelTeamId(player['team_id']) print player playerStatusKey = "{0}_{1}".format(player['name'], player['team']) pStatus = None try: #pStatus = playerStatus[playerStatusKey] pStatus = lineups[playerStatusKey] except KeyError: pass print "pStatus=", pStatus if pStatus is None or (pStatus is not None and pStatus['status'] == 'No Lineup'): # Try to skip non-probable pitchers if player['position'] == 'P' and player['player_status'] not in [1, 5]: print "Skipping, not probable pitcher" continue if pStatus is not None and pStatus['active'] == 'Inactive': print "Skipping, player is inactive." continue if player['position'] != 'P' and player['player_status'] not in [4]: print "Skipping, player_status not 4" continue else: # Try to skip non-probable pitchers if player['position'] == 'P' and player['player_status'] in [1, 5]: print "Keeping, not probable pitcher" pass elif pStatus['status'] != 'Starter': print "NOT STARTER, skipping." continue playerStatsKey = player['name'] if player['injury'] != '' or player['player_status'] in [2, 6]: print "Skipping, injury." continue eligiblePlayerKey = "{0}_{1}".format(player['name'], player['team']) self.eligiblePlayers[eligiblePlayerKey] = player return self.eligiblePlayers
def getEligiblePlayersCSV(self): mlb = MLB(self.sqlContext, self.dataDirectory, self.gameDate, isReadOnly=False) lineups = mlb.getLineups() with open(self.gameJSONFilename) as csvfile: reader = csv.DictReader(csvfile) for fdPlayer in reader: print "looking at player=", fdPlayer # {'Salary': '2200', 'FPPG': '1.5', 'Played': '75', 'Last Name': 'Pagan', 'Injury Details': 'Knee', 'Injury Indicator': 'DTD', 'First Name': 'Angel', 'Game': 'SFG@WAS', 'Team': 'SFG', 'Position': 'OF', 'Probable pitcher': '', 'Opponent': 'WAS'} player = {} #player['key'] = key player['position'] = fdPlayer['Position'] player['name'] = fdPlayer['First Name'] + ' ' + fdPlayer['Last Name'] player['game_id'] = fdPlayer['Game'] #player['team_id'] = fdPlayer['Team'] #player['id3'] = fields[4] player['salary'] = float(fdPlayer['Salary']) player['points'] = fdPlayer['FPPG'] player['num_games'] = fdPlayer['Played'] #player['some_boolean'] = fields[8] player['player_status'] = fdPlayer['Probable Pitcher'] player['injury'] = fdPlayer['Injury Indicator'] # We already have a team name, no need to convert from id #player['team'] = mlb.getTeamFromFanduelTeamId(player['team_id']) if fdPlayer['Team'] == 'TAM': fdPlayer['Team'] = 'TB' player['team'] = mlb._validteams(fdPlayer['Team']) print player if player['team'] is None: print "NO TEAM: ", fdPlayer['Team'] sys.exit(1) playerStatusKey = "{0}_{1}".format(player['name'], player['team']) pStatus = None try: #pStatus = playerStatus[playerStatusKey] pStatus = lineups[playerStatusKey] except KeyError: pass print "pStatus=", pStatus if pStatus is None or (pStatus is not None and pStatus['status'] == 'No Lineup'): # Try to skip non-probable pitchers if player['position'] == 'P' and player['player_status'] == '': print "Skipping, not probable pitcher" continue if pStatus is not None and pStatus['active'] == 'Inactive': print "Skipping, player is inactive." continue if player['injury'] != '': print "Skipping, player is injured." continue else: # Try to skip non-probable pitchers if player['position'] == 'P': if player['player_status'] == '': print "Skipping, not probable pitcher" continue else: if pStatus['status'] != 'Starter': print "NOT STARTER, skipping." continue elif player['injury'] != '': print "Skipping, player is injured." continue eligiblePlayerKey = "{0}_{1}".format(player['name'], player['team']) self.eligiblePlayers[eligiblePlayerKey] = player return self.eligiblePlayers