Пытался вычистить статистику каждого игрока из игры, но столкнулся с проблемой при попытке использования метода .get ().
Это API:
https://statsapi.web.nhl.com/api/v1/game/2017020002/feed/live
Чтобы очистить статистику игрока, мне сначала нужен их ID. Первый цикл for делает это, получая ('skaters') и захватывая их ID и помещая его
в списке player_id.
Следующие два цикла for должны получать статистику игрока как для дома / в гостях, так и для каждого идентификатора в player_id. Идентификатор игрока в виде числа => 8474756
Но ключ для захвата player_stats называется "ID" ИМЯ ИГРОКА ", поэтому каждый ключ имеет уникальное имя, и именно поэтому цикл for существует. Но я не знаю точно, как заставить это работать.
Спасибо за вашу помощь!
import numpy as np
import pandas as pd
import requests
import json
from sklearn import preprocessing
from sklearn.preprocessing import OneHotEncoder
results = []
player_id = []
for game_id in range(2018020001, 2018020002, 1):
url = 'https://statsapi.web.nhl.com/api/v1/game/{}/feed/live'.format(game_id)
r = requests.get(url)
game_data = r.json()
for homeaway in ['home','away']:
player_dict = game_data.get('liveData').get('boxscore').get('teams').get(homeaway).get('skaters')
player_id.append(player_dict)
for homeaway in ['home', 'away']:
for playerID in player_id:
play_dict = game_data.get('liveData').get('boxscore').get('teams')
.get('homeaway').get('players').get('ID'+player_id).get('person')
Вот код, который мне нужен для очистки игровых данных, я хотел бы получить такой же тип вывода, как это дает мне.
import numpy as np
import pandas as pd
import requests
import json
from sklearn import preprocessing
from sklearn.preprocessing import OneHotEncoder
results = []
for game_id in range(2018020598, 2018020650, 1):
url = 'https://statsapi.web.nhl.com/api/v1/game/{}/boxscore'.format(game_id)
r = requests.get(url)
game_data = r.json()
for homeaway in ['home','away']:
game_dict = game_data.get('teams').get(homeaway).get('teamStats').get('teamSkaterStats')
game_dict['team'] = game_data.get('teams').get(homeaway).get('team').get('name')
game_dict['homeaway'] = homeaway
game_dict['game_id'] = game_id
results.append(game_dict)
df = pd.DataFrame(results)
Вот пример таблицы того, как я хотел бы, чтобы набор данных выглядел как
PlayerID Team Won/lost opponent game_id metric1 metric2 metric_n
1 LA 1 CAP 0001 10 10 10