如何从返回纯文本的API中获取内容?API新手求助
解决方法
你的代码问题出在响应解析方式上:这个API返回的是纯文本内容,但你用了resp.json()去解析,这会导致解析失败——因为纯文本不是JSON格式。
把代码里的resp.json()改成resp.text就能正常获取内容了,修改后的代码如下:
@bot.command() async def insult(ctx): resp = requests.get("https://insult.mattbas.org/api/insult") if 300 > resp.status_code >= 200: content = resp.text # 获取纯文本响应内容 else: content = f"Recieved a bad status code of {resp.status_code}." await ctx.send(content)
补充说明:
resp.text:用于获取纯文本格式的响应内容,适配这类直接返回文本的APIresp.json():仅适用于返回JSON格式数据的API,会自动将JSON字符串解析为Python字典/列表
内容的提问来源于stack exchange,提问作者Arpith Anto
相关产品推荐
相关产品推荐

