【发布时间】:2020-02-11 21:29:20
【问题描述】:
所以我一直在研究这个问题,但想不出办法。
我需要一种方法来知道响应正文是否可以在不触发回溯的情况下转换为字典。
import requests
import json
session = requests.Session()
url = "www.something.com"
response = session.get(url=url)
if response.json():
# et cetera
我可能会收到一个纯文本/文本响应正文,其中仅显示“OK”或其他字符串,并且需要一种方法来识别差异。
谢谢!
【问题讨论】:
-
为什么不检查响应的内容类型标头?
-
这也是个好办法。你的意思是这样吗?如果 response.header 中有“application/json”:
-
response.headers["Content-Type"].startswith("application/json")̀应该没问题。当然,这只适用于正确实现的 API - 相当多的应用程序可以返回完整的垃圾(不正确的内容类型、糟糕的 WP 插件无条件地在 all 响应的末尾添加 HTML 内容等),所以除非您确定您请求的 API 是干净的,否则您仍然需要使用 try/except 块。你当然要先检查响应状态码 ;-)
标签: json python-2.7 dictionary python-requests