Python爬虫抓取ESPN球队花名册无球衣号码报错如何修复
错误根因
你代码报错的核心原因是部分ESPN球队花名册里的球员数据不存在jersey(球衣号码)字段,直接通过player['jersey']按键取值会抛出KeyError异常,终止程序运行。
修复方法
修改球员字段的取值逻辑,使用字典的get()方法为缺失的字段设置兜底默认值即可,无需改动其他逻辑:
- 将原代码中
j=player['jersey']替换为j = player.get('jersey', 'N/A'),无球衣号码时会自动用N/A作为占位值,你也可以把默认值改成空字符串''或者其他你想要的标识。 - 若要进一步提升稳定性,
name、position字段也可以用相同的get()方法加兜底,避免其他字段缺失引发的报错。
修改后的核心代码片段
for group in roster['groups']: for player in group['athletes']: n = player.get('name', '未知姓名') p = player.get('position', '未知位置') # 无球衣号码时用N/A占位 j = player.get('jersey', 'N/A') DATA = '%s%s\t%s %s %s (%s)\t[%s]\n'%(short,j,team,p,n,j,n) TEAM.append(DATA)
修改后重新运行即可正常抓取所有球队的花名册数据,包括存在无球衣号码球员的页面。
内容的提问来源于stack exchange,提问作者Allan Dranberg
相关产品推荐
相关产品推荐

