我试图在汇合网页上更新一些数据。 Postman中的一切工作正常(数据更新)。但是,当我使用python和请求模块时,我收到以下错误:
ValueError:无法解码JSON对象
最奇怪的是我收到了200状态代码,但网页没有更新。该错误似乎源于输入' r.json'。
以下是我的代码(我试图将网页内容更改为“Hello World'”):
import requests
import json
url = <url>
data = {
"id": "18219205",
"title": "Testapi",
"type": "page",
"version": {
"number": 11
},
"body": {
"storage": {
"representation": "storage",
"value": "Hello world."
}
}
}
dumped_data = json.dumps(data)
headers = {
'content-type': "application/json",
'authorization': "Basic <token number>",
'cache-control': "no-cache",
'postman-token': "<another token>"
}
r = requests.put(url, data=dumped_data, headers=headers, verify=False)
print r.json()
答案 0 :(得分:0)
这种情况正在发生,因为您发布的API不响应JSON,因此当您调用r.json()
请求时,尝试将响应正文解析为JSON并失败。你看到200是因为你能够正确地将数据发送到服务器,你只是试图读错了。
例如,如果响应获得204(无内容),或者响应包含无效的JSON,则尝试r.json()会引发ValueError:无法解码JSON对象。