我正在尝试如下所示的 PUT 请求,但我一直收到 500 状态代码。
r=requests.put(url=<URL>, data = <JSON file>)
数据是我从 OrderdDict 创建的嵌套 JSON 文件,然后使用 json.dumps() 命令将 Python bool 值转换为 JSON bool 值并转换为 JSON,如下所示:
{“patient_name”:“Walter Mitty”,“preop_room”:“PREOP-7”,“or_room”:“OR-4”,“pacu_bed”:“BED 2”,“preop_checklist”:[ true, false, true, false, true, false, true, false, true, false], "or_checklist": [true, false, true, false, true, false, true, false, true, false, true, false, true], "pacu_checklist": [true, false, true, false, true, false, true, false], "location": "OR 房间"
我验证了这个 JSON 文件,它的格式正确。但是我不明白为什么我在尝试 PUT 请求时总是收到 500 状态码。
最佳答案
看来你要么使用request.put(url=<url>, json=<json-data>)
或者你使用 json.dumps(<json-data>)
明确地将你的字典转换为 json然后能够使用 data=<json-data>
交付它.
并且,根据您正在与之交谈的 REST Api 的实现,您可能需要设置内容类型 header :requests.put(url=<url>, json=<json-data>, headers={ 'content-type': 'application/json' })
关于更新嵌套 JSON 的 Python PUT 请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35111058/