从NHLAPI收集球员数据

2024-09-25 00:35:39 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试从游戏中获取每个玩家的统计信息,但在尝试.get()方法时遇到了问题。在

这是API: https://statsapi.web.nhl.com/api/v1/game/2017020002/feed/live

我首先需要他们的身份证,第一个for循环的方法是找到('skaters'),抓取他们的身份证,然后把它放进去 在玩家名单上

接下来的两个for循环是获取主/客场以及player_ID中每个ID的球员统计信息。player ID的形式为number=>;8474756 但是获取玩家统计信息的键被命名为“ID”PLAYERS NUMBER“,所以每个键都有一个唯一的名称,这就是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')

这里是我要抓取游戏数据的代码,我想有同样的输出类型,就像这样给我。在

^{pr2}$

下面是一个示例表,显示了我希望数据集的外观

PlayerID   Team   Won/lost   opponent   game_id     metric1   metric2 metric_n
  1          LA      1          CAP       0001         10       10        10

Tags: 方法inimport信息idgame游戏for
1条回答
网友
1楼 · 发布于 2024-09-25 00:35:39

您的player_id是列表列表,因此当您for playerID in player_id:时,您实际上会遍历子列表,而不是玩家ID。。尝试修改代码:

player_id = {}
results = []

for homeaway in ['home','away']:
    player_dict = game_data.get('liveData').get('boxscore').get('teams').get(homeaway).get('skaters')
    player_id[homeaway] = player_dict

现在player_id是一个字典,就像{'home': [ID_1, ID_2,...],离开{}

^{pr2}$

相关问题 更多 >