API 不接受 requests.put HTTP 调用,JSON 格式化
API doesn't accept requests.put HTTP call, JSON formatting
我正在尝试使用 Python 的 Requests HTTP 库进行 HTTP 调用。
我有这个代码:
import requests
import json
body = json.dumps({"on": "false"})
url = "http://192.168.100.100/api/0000/lights/4/state"
r = requests.put(url=url, data=body)
然而,API 响应
"error": {
"type": 7,
"address": "/lights/4/state/on",
"description": "invalid value, true }, for parameter, on"
我不完全确定问题出在哪里,但可能是 BODY 格式错误; r.request.body 说
{"on": "false"}
什么时候应该
{"on": false}
如果我从我得到的代码中去掉引号
NameError: name 'false' is not defined
调用在浏览器中完成后有效,所以我知道此参数的值是正确的。我怎样才能正确发送这个电话?
尝试将 body = json.dumps({"on": "false"})
更改为 body = json.dumps({"on": False})
注意 python 中 False
的大写。
API 可能正在寻找 json 布尔值作为键 on
的值。如果是这种情况,则 json.dumps({"on":False})
将字符串中的 python bool False
转换为 json bool false
。
PS:这也是将 python 的 None
转换为 json 的 null
和其他 json 的方式具体关键字。
我正在尝试使用 Python 的 Requests HTTP 库进行 HTTP 调用。
我有这个代码:
import requests
import json
body = json.dumps({"on": "false"})
url = "http://192.168.100.100/api/0000/lights/4/state"
r = requests.put(url=url, data=body)
然而,API 响应
"error": {
"type": 7,
"address": "/lights/4/state/on",
"description": "invalid value, true }, for parameter, on"
我不完全确定问题出在哪里,但可能是 BODY 格式错误; r.request.body 说
{"on": "false"}
什么时候应该
{"on": false}
如果我从我得到的代码中去掉引号
NameError: name 'false' is not defined
调用在浏览器中完成后有效,所以我知道此参数的值是正确的。我怎样才能正确发送这个电话?
尝试将 body = json.dumps({"on": "false"})
更改为 body = json.dumps({"on": False})
注意 python 中 False
的大写。
API 可能正在寻找 json 布尔值作为键 on
的值。如果是这种情况,则 json.dumps({"on":False})
将字符串中的 python bool False
转换为 json bool false
。
PS:这也是将 python 的 None
转换为 json 的 null
和其他 json 的方式具体关键字。