我使用Python的requests
模块向某个网站发出POST请求。我的目标是获得JSON格式的响应。
问题:响应的Content-Type
头是text/html
。试图将其解析为JSON会引发错误。打印响应的内容给了我一堆我不想要的复杂的html。
然而,在Chrome开发工具>网络,我可以看到相同的POST请求的响应作为一个JSON对象。此外,Dev Tools上响应的Content-Type
头明确表示application/json
.
我的目标是在我的Python脚本中强制响应的Content-Type
为application/json
。我尝试了以下操作:
- 手动设置标题:
response.headers['Content-Type'] = 'application/json; charset=utf-8'
response.json()
没有运气。
- 在请求中设置
Content-Type
和Accept
为application/json
。这没有多大意义,但值得一试。 - 发送我的请求数据作为
multipart/form-data
,因为它在开发工具中说。没有运气。
这几乎与这个问题完全相同:响应内容类型文本/html而预期应用程序/json,但那是在一个更具体的上下文中,解决方案不适用于我。
谢谢!
我和你有同样的问题,经过10个小时的研究,我用下面的代码解决了我的问题
import requests
import json
url = ""
headers = {"content-type": "application/json; charset=UTF-8"}
payload = {}
r = requests.post(url, headers=headers, data=json.dumps(payload))
希望,这将帮助你