访问dataframe内的嵌套字典数据

2024-04-26 05:01:23 发布

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

我正在尝试从OHL统计页面的一个片段中访问玩家数据。下面的代码为我提供了所需的一切

url = 'https://ontariohockeyleague.com/stats/players/68'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')

statviewtype_url = "http://lscluster.hockeytech.com/feed/?feed=modulekit&view=statviewtype&type=topscorers&key=%s&fmt=json&client_code=ohl&lang=en&league_code=&season_id=68&first=0&limit=100&sort=active&stat=all&order_direction="

key = soup.find('div', id='stats')['data-feed_key']

r = requests.get(statviewtype_url % key)
statviewtype_data = json.loads(r.text)
d = json.loads(r.text)
df = pd.DataFrame(d)
print(df)

输出:

Copyright     {'required_copyright': 'Official statistics pr...
Parameters    {'feed': 'modulekit', 'view': 'statviewtype', ...
Statviewtype  [{'player_id': '7889', 'shortname': 'M. Rossi'...

我想要的是Statviewtype字典(?我想这就是它)。但是当我试图用类似print(df['Statviewtype'])的东西访问它时,我会出错。我是否混淆了数据类型?我是不是过于简化了


1条回答
网友
1楼 · 发布于 2024-04-26 05:01:23

您的数据帧有3个索引['Copyright', 'Parameters', 'Statviewtype']和一列['SiteKit']。要读取Statviewtype,您需要:

df.loc['Statviewtype', 'SiteKit'][0]

它指定索引Statviewtype和列SiteKit。还要注意结尾的[0]。这是因为字典位于一个列表中,其中字典是唯一的元素。但一旦完成,你就可以开始了:

In []: df.loc['Statviewtype', 'SiteKit'][0].keys()
Out[]: dict_keys(['player_id', 'shortname', 'first_name', ... , 'namelink', 'teamlink', 'photo'])

相关问题 更多 >

    热门问题