API 不接受请求.put HTTP 调用,JSON 格式



我正在尝试使用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特定的关键字。

最新更新