规范化Python列表以将JSON数据放入表中

2024-09-28 22:32:30 发布

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

我尝试使用下面的python代码从API获取信息并最终创建players表。我得到的数据基本上是标准化的,但我很难处理[名册]列表。在

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

退货:

^{pr2}$

我能做些什么把每个人从这个API中提取到一个表中,有什么想法吗?即:

^{3}$

谢谢。在


Tags: importapijsondataframepandasdatarequestspd
1条回答
网友
1楼 · 发布于 2024-09-28 22:32:30

看来主要的问题是这本词典很深。一些检查显示,这段代码可以让你找到每个玩家:

all_players = []
for team in data['teams']:
    for player in team['franchise']['roster']['roster']:
        player = player['person']
        print(player.keys())
        print(player)
        print()

但是,player中的一些键对应于更多的字典。因此,您要么决定哪些播放器字段是基本值,如strings/int/etc并保留它们,要么添加更多代码来解析附加的字典。在

但是这段代码会让你接触到每个玩家,然后你就可以规范化你想要的了。在

如果你需要帮助,请告诉我!在

相关问题 更多 >