我正在尝试使用以下python代码从API提取信息并最终创建一个players表。我已经获得的数据大部分都已标准化到该水平,但是正在努力使用[花名册]列表。
Stream<T>
返回:
import requests
import json
import pandas as pd
from pandas.io.json import json_normalize
r1 = requests.get('https://statsapi.web.nhl.com/api/v1/teams/16?hydrate=franchise(roster(season=20182019,person(name,stats(splits=[yearByYear]))))')
data = r1.json()
df1 = json_normalize(data, 'teams',['teams.franchise'],errors='ignore')['franchise']
df2 = json_normalize(df1)['roster.roster']
df3 = pd.DataFrame(data=df2.index, columns=['Id'])
df4 = pd.DataFrame(data=df2.values, columns=['Players'])
df4
关于如何将每个人从此API提取到表中的想法? IE:
0 [{'person': {'id': 8470645, 'fullName': 'Corey...
谢谢。
答案 0 :(得分:0)
看起来主要问题是这是一本深层的字典。一些检查表明,此代码将带您进入每个玩家:
all_players = []
for team in data['teams']:
for player in team['franchise']['roster']['roster']:
player = player['person']
print(player.keys())
print(player)
print()
但是,player
中的某些键对应于更多的词典。因此,您要么必须确定哪些玩家字段是基本值(例如string / ints / etc)并保留这些值,要么添加更多代码以解析出其他字典。
但是此代码将带您进入每个玩家,然后您可以从那里标准化自己的需求。
让我知道您是否需要帮助!