You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python/Pandas中解析棒球API嵌套字典并提取客队击球总计

解决方法:解析MLB Stats API的客队击球总计并转为DataFrame

你的代码存在两个核心问题:

  1. API函数误用:statsapi.boxscore()返回的是纯文本格式的比赛摘要,并非结构化JSON数据,应该使用statsapi.boxscore_data()的返回结果。
  2. 字典访问逻辑错误:awayBattingTotals本身就是包含总计数据的字典,不存在awayBattingfields这个键,也无需再去获取"Totals"子键。

正确代码示例

import pandas as pd
import statsapi

# 获取结构化JSON响应数据
boxscore_data = statsapi.boxscore_data(662647)

# 直接提取客队击球总计字典
away_batting_totals = boxscore_data['awayBattingTotals']

# 将单个字典转为DataFrame(需包装成列表,适配pandas的数据源要求)
df = pd.DataFrame([away_batting_totals])

print(df)

代码说明

  • 第一步通过statsapi.boxscore_data()获取完整的比赛结构化数据,返回值为Python字典,包含所有细分数据模块。
  • 直接通过键名'awayBattingTotals'提取目标总计数据,该键对应的值就是需要的客队击球统计字典。
  • 由于pd.DataFrame()默认接受可迭代数据源,将单个字典放入列表中,即可生成包含所有统计字段的单行DataFrame。

简化版输出示例

namefieldabrhhrrbibbklob...
Totals3327120813...

内容的提问来源于stack exchange,提问作者sajeeni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 01:18:27