我正在尝试使用Python的请求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 bool作为键on
的值。如果是这种情况,那么json.dumps({"on":False})
将字符串中的python bool False
转换为json bool false
。
PS:这也是你如何将python的None
转换为json的null
和其他json特定的关键字。