def find_hot(player_name): url = 'http://china.nba.com/wap/static/data/player/hotzone_' \ + player_name + \ '.json' response = requests.get(url) response.encoding = 'utf-8' if not valid_response(response): return try: pid = response.json()['payload']['profile']['playerId'] regu_last_5 = response.json( )['payload']['hotZone']['seasons'][1]['splits'][0]['full'] regu_total = response.json( )['payload']['hotZone']['seasons'][1]['splits'][1]['full'] regu_last_5['playerId'] = pid regu_total['playerId'] = pid dict_to_csv(regu_last_5, 'regular_last5_' + player_name) dict_to_csv(regu_total, 'regular_total_' + player_name) bef_last_5 = response.json( )['payload']['hotZone']['seasons'][0]['splits'][0]['full'] bef_total = response.json( )['payload']['hotZone']['seasons'][0]['splits'][1]['full'] bef_last_5['playerId'] = pid bef_total['playerId'] = pid dict_to_csv(bef_last_5, 'pre_last5_' + player_name) dict_to_csv(bef_total, 'pre_total_' + player_name) except (KeyError, IndexError, TypeError): print('no such player ' + player_name)
def team_profile(team_id, season='2014-15'): url = 'http://stats.nba.com/stats/teaminfocommon?LeagueID=00&SeasonType=Regular+Season&TeamID=' \ + str(team_id) + \ '&season=' \ + str(season) response = requests.get(url) if not valid_response(response): return stats = response.json()['resultSets'][0] list2d_to_csv(dict_to_list2d(stats), PATH + 'team_profile_' + str(team_id) + UNDER + season)
def get_pie(player_id, season='2014-15', ptype=PIEType.rest): url = 'http://stats.nba.com/stats/playerdashboardbygeneralsplits?DateFrom=&DateTo=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Advanced&Month=0&OpponentTeamID=0&Outcome=&PaceAdjust=N&PerMode=PerGame&Period=0&PlayerID=' \ + str(player_id) + \ '&PlusMinus=N&Rank=N&Season=' \ + season + \ '&SeasonSegment=&SeasonType=Regular+Season&VsConference=&VsDivision=' resp = requests.get(url) if not valid_response(resp): return # check whether this player meet the requests result_sets = resp.json()['resultSets'] if ptype == PIEType.overall: keep = FORBID for row in result_sets[5]['rowSet']: if row[1] == 'Starters' and row[2] > 42: keep = STARTER break elif row[1] == 'Bench' and row[2] > 42: keep = BENCH break pie = [keep] try: overall_pie = result_sets[0]['rowSet'][0][PIE_INDEX] pie.append(overall_pie) return pie except (KeyError, IndexError, TypeError): return pie # diminish some game < 3 rest_pie = [player_id] j = 0 for i in range(0, 7): if j >= len(result_sets[6]['rowSet']): rest_pie.append(0) continue row = result_sets[6]['rowSet'][j] if row[2] < 3: j += 1 rest_pie.append(0) elif row[1][0] != str(i): rest_pie.append(0) else: j += 1 rest_pie.append(row[PIE_INDEX]) return rest_pie
def team_profile(team_id, season='2014-15'): url = 'http://stats.nba.com/stats/teaminfocommon?LeagueID=00&SeasonType=Regular+Season&TeamID=' \ + str(team_id) + \ '&season=' \ + str(season) response = requests.get(url) if not valid_response(response): return stats = response.json()['resultSets'][0] list2d_to_csv( dict_to_list2d(stats), PATH + 'team_profile_' + str(team_id) + UNDER + season )
def find_hot(player_name): url = 'http://china.nba.com/wap/static/data/player/hotzone_' \ + player_name + \ '.json' response = requests.get(url) response.encoding = 'utf-8' if not valid_response(response): return try: pid = response.json()['payload']['profile']['playerId'] regu_last_5 = response.json()['payload']['hotZone']['seasons'][1]['splits'][0]['full'] regu_total = response.json()['payload']['hotZone']['seasons'][1]['splits'][1]['full'] regu_last_5['playerId'] = pid regu_total['playerId'] = pid dict_to_csv( regu_last_5, 'regular_last5_' + player_name ) dict_to_csv( regu_total, 'regular_total_' + player_name ) bef_last_5 = response.json()['payload']['hotZone']['seasons'][0]['splits'][0]['full'] bef_total = response.json()['payload']['hotZone']['seasons'][0]['splits'][1]['full'] bef_last_5['playerId'] = pid bef_total['playerId'] = pid dict_to_csv( bef_last_5, 'pre_last5_' + player_name ) dict_to_csv( bef_total, 'pre_total_' + player_name ) except (KeyError, IndexError, TypeError): print('no such player ' + player_name)