如何用Python调用指定API获取数据?返回200但无法提取内容
问题解决
你的代码核心问题是对API返回格式判断错误:你请求的/insult.txt端点返回的是纯文本格式的侮辱语句,并非JSON数据,但你却用res.json()尝试解析,这会触发JSON解析错误,额外嵌套的json.loads()更是完全多余的操作。
修复后的纯文本版本代码
import requests def get_insult(): res = requests.get('https://insult.mattbas.org/api/insult.txt') if res.status_code == 200: # 直接获取纯文本内容 print(res.text) else: print(f"请求失败,状态码: {res.status_code}") get_insult()
可选:使用JSON格式的API端点
该API还提供了返回JSON结构的/insult.json端点,适合需要结构化数据的场景,代码如下:
import requests def get_insult(): res = requests.get('https://insult.mattbas.org/api/insult.json') if res.status_code == 200: insult_data = res.json() # 从JSON中提取侮辱语句,对应key为"insult" print(insult_data.get('insult')) else: print(f"请求失败,状态码: {res.status_code}") get_insult()
内容的提问来源于stack exchange,提问作者Christian Paul Calso
相关产品推荐
相关产品推荐

