我正在尝试使用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
在浏览器中完成调用后,我知道该参数的值是正确的。我该如何正确发送此电话?
答案 0 :(得分:0)
尝试将body = json.dumps({"on": "false"})
更改为body = json.dumps({"on": False})
请注意python中False
的大小写。
答案 1 :(得分:0)
API可能正在寻找json bool作为键on
的值。如果是这种情况,则json.dumps({"on":False})
将python bool False
转换为字符串中的json bool false
。
PS:这也是你如何将python的None
转换为json的null
和其他特定于json的关键字。