Esempio n. 1
0
File: nba.py Progetto: DimosGu/nba
def import_pbp(pbp_file):

    print('importing {}'.format(pbp_file))

    json_data = json.load(open(pbp_file, 'r'))
    game_id = json_data['league']['season']['eventType'][0]['events'][0]['eventId']

    print(game_id)
    pbp.update({'league.season.eventType.0.events.0.eventId': game_id}, json_data, upsert=True)
Esempio n. 2
0
def get_all_data(start_date, end_date):

    try:
        os.mkdir('./json_data')
    except OSError as os_err:
        print os_err

    try:
        os.mkdir('./mongo_data')
    except OSError as os_err:
        print os_err

    date_list = [start_date + dt.timedelta(days=x) for x in range(0, (end_date - start_date).days)]
    if dt.date(2014, 2, 16) in date_list:
        date_list.remove(dt.date(2014, 2, 16))
    if dt.date(2015, 2, 15) in date_list:
        date_list.remove(dt.date(2015, 2, 15))

    for game_day in date_list:
        print 'Processing game day', game_day

        game_ids = get_games(game_day, 'json_data/2013/game-day-{0}.json'.format(format_date(game_day)))

        # now all the data is just contained in the boxscore...

        base_url = 'http://www.si.com/pbp/liveupdate'

        for game_id in game_ids:


            result = requests.get(base_url, params={'json': '1',
                                                    'sport': 'basketball/nba',
                                                    'id': str(game_id),
                                                    'box': 'true',
                                                    'pbp': 'true',
                                                    'linescore': 'true'})

            try:
                json_result = result.json()['apiResults'][0]
                #dict_result = json.loads(json_result)['apiResults']
                #print json_result
                print game_id
                output_file = 'json_data/2013/pbp_{0}_{1}.json'.format(format_date(game_day), game_id)
                with open(output_file, 'w') as of:
                    json.dump(json_result, of, indent=4)

                boxscore_data = json_result['league']['season']['eventType'][0]['events'][0]['boxscores']
                team_data = json_result['league']['season']['eventType'][0]['events'][0]['teams']

                for team in team_data:
                    filtered_team_data = {'id': team['teamId'],
                                          'location': team['location'],
                                          'nickname': team['nickname'],
                                          'abbreviation': team['abbreviation']}
                    print filtered_team_data['nickname']
                    teams.update({'id': team['teamId']}, filtered_team_data, upsert=True)

                for team in boxscore_data:
                    for player in team['playerstats']:
                        filtered_player_data = {'id': player['player']['playerId'],
                                                'firstName': player['player']['firstName'],
                                                'lastName': player['player']['lastName']}

                        players.update({'id': player['player']['playerId']}, filtered_player_data, upsert=True)


                pbp.update({'league.season.eventType.0.events.0.eventId': game_id}, json_result, upsert=True)

            except Exception as ex:
                print ex