Python如何从网页接口导入预生成列表 解决requests获取数据截断问题
问题解决方法
你的代码错误地将 requests.get() 返回的响应对象直接转换为列表,requests 库的响应对象默认迭代时会按字节块拆分响应内容,所以你拿到的第一个列表元素只是响应开头的部分字节,才会出现截断问题。
你可以直接调用响应对象的 .json() 方法自动解析接口返回的JSON格式数据,无需手动处理字节转码和JSON解析,修改后代码如下:
import requests # 发送GET请求 response = requests.get("http://45.77.228.203:3001/V2/battlesruleset?ruleset=Standard&mana=12&player=tyaaz&token=undefined&summoners=[5,16,27,38,49,167,178,189,145,156,145,189,224,259]") # 检查请求是否成功,避免接口报错导致后续解析失败 response.raise_for_status() # 直接解析为JSON格式 card_deck = response.json() # 输出第一个元素,就是你需要的完整结构 print(card_deck[0])
如果需要手动处理响应文本,也可以先调用 .text 属性获取完整的响应字符串,再用 json 标准库解析,代码如下:
import requests import json response = requests.get("http://45.77.228.203:3001/V2/battlesruleset?ruleset=Standard&mana=12&player=tyaaz&token=undefined&summoners=[5,16,27,38,49,167,178,189,145,156,145,189,224,259]") response.raise_for_status() # 获取完整响应文本 json_str = response.text # 解析为Python对象 card_deck = json.loads(json_str) print(card_deck[0])
内容的提问来源于stack exchange,提问作者Tyaaz
相关产品推荐
相关产品推荐

