使用nba_api批量拉取NBA赛事box scores时触发JSONDecodeError如何解决
问题原因
BoxScoreAdvancedV2 接口本身不支持传入多个game_id的列表,仅支持单次请求传入单个字符串格式的比赛ID,你碰到的JSON解析错误本质是参数格式不匹配导致请求失败,服务器返回了非JSON格式的错误响应/空响应,解析逻辑直接报错。
具体底层限制有两个:
- NBA官方stats服务对单场技术统计类的接口做了设计限制,单次请求仅允许查询一场比赛的相关数据,避免服务器负载过高
nba_api对该端点的参数没有做批量兼容处理,你传入列表时会直接作为参数值拼接到请求URL中,和接口要求的字符串格式不匹配,服务器直接返回非法响应
方案说明
你自己写的循环遍历单个拉取的方案是目前该接口的标准解法,补充两个优化提示:
- 注意变量名一致性,你之前获取去重比赛ID时变量命名为
game_id,循环里用的是game_ids,实际运行要注意统一避免报错 - 你加的0.6秒间隔很有必要,NBA官方接口有频率限制,请求过于频繁会触发限流,同样会返回非JSON响应导致相同报错
内容的提问来源于stack exchange,提问作者Bubbagaboosh
相关产品推荐
相关产品推荐

