当我使用 Requests 模块发出 POST 请求时,我试图了解我到底得到了什么——它总是 JSON 吗?似乎我得到的每个响应似乎都是 JSON,但我不确定。
r 是我的响应对象,当我这样做时:
print r.apparent_encoding
似乎总是返回ascii
当我尝试 type() 时:
>>>print type(r)
<class 'requests.models.Response'
我将 print r.text 的输出粘贴到一个 JSON 验证器中,它没有报告任何错误。那么我是否应该假设 Requests 在这里为我提供了 JSON 对象?
请您参考如下方法:
响应可以是任何内容。如果您已发布到 REST 端点,它通常会使用 JSON 进行响应。如果是这样,requests 将检测到它并允许您通过 .json() 方法对其进行解码。
但是您完全有可能发布到一个普通的 web URL,实际上假装是一个浏览器,除非服务器正在做一些非常聪明的事情,否则它只会用它为浏览器提供的标准 HTML 进行响应。在这种情况下,执行 response.json() 将引发 ValueError。
