我试图使用Python的Requests库进行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"
我不完全确定是什么问题,但可能是身体格式化错误;r.request.body说
{"on": "false"}
当它应该是
{"on": false}
如果我去掉代码中的引号
NameError: name 'false' is not defined
调用在浏览器中工作,所以我知道这个参数的值是正确的。我怎么才能正确地发送这个电话?
发布于 2015-07-08 22:36:32
尝试将body = json.dumps({"on": "false"})
更改为body = json.dumps({"on": False})
请注意python中False
的大写化。
发布于 2015-07-08 22:37:54
API可能正在寻找一个json作为键on
的值。如果是这样的话,那么json.dumps({"on":False})
将字符串中的python False
转换为json false
。
PS:这也是如何将python的None
转换为json的null
和其他特定的json关键字。
https://stackoverflow.com/questions/31304977
复制相似问题