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

Python抓取ESPN FF梦幻橄榄球数据报KeyError:'away'错误如何解决

问题原因

ESPN 梦幻橄榄球的赛程接口返回的schedule列表中,并非所有对阵条目都同时存在away和home字段:

  • 轮空周(bye week)的条目只会记录单支球队信息
  • 未最终确定的季后赛对阵也可能缺失其中一个字段
    你之前检查字典时只查看了部分正常对阵数据,没有遍历全所有schedule条目,才会误以为所有条目都存在away键。

排查方法

先运行以下代码定位异常条目:

for idx, game in enumerate(d['schedule']):
    if 'away' not in game or 'home' not in game:
        print(f"索引{idx}的对阵数据异常,内容:{game}")

修复方案

方案1:过滤异常条目(仅保留完整对阵数据)

修改列表推导式,增加字段存在性判断:

df = [[
        game['matchupPeriodId'],
        game['away']['teamId'], game['away']['totalPoints'],
        game['home']['teamId'], game['home']['totalPoints']
    ] for game in d['schedule'] if 'away' in game and 'home' in game]

方案2:保留所有条目,缺失字段填空值

用dict.get()方法设置缺省值,避免键不存在报错:

df = [[
        game['matchupPeriodId'],
        game.get('away', {}).get('teamId'), game.get('away', {}).get('totalPoints'),
        game.get('home', {}).get('teamId'), game.get('home', {}).get('totalPoints')
    ] for game in d['schedule']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:57:03