使用 python 请求模块的 HTTP 删除
HTTP Delete with python requests module
我想使用下面 API 之后的 python 请求模块执行 HTTP DELETE;
https://thingspeak.com/docs/channels#create
DELETE https://api.thingspeak.com/channels/4/feeds
api_key=XXXXXXXXXXXXXXXX
我正在使用 python v2.7 和请求模块。我的 python 代码如下所示;
def clear(channel_id):
data = {}
data['api_key'] = 'DUCYS8xufsV613VX'
URL_delete = "http://api.thingspeak.com/channels/" + str(channel_id) + "/feeds"
r = requests.delete(URL_delete, data)
该代码不起作用,因为 requests.delete() 只能接受一个参数。正确的代码应该是什么样的?
你想要
import json
mydata = {}
mydata['api_key'] = "Jsa9i23jka"
r = requests.delete(URL_delete, data=json.dumps(mydata))
您必须使用命名输入 'data',我猜您实际上想要转储 JSON,因此您必须将字典 'mydata' 转换为json 字符串。您可以为此使用 json.dumps() 。
我不知道您使用的 API,但听上去您实际上想要传递 URL 参数,而不是数据,因为您需要:
r = requests.delete(URL_delete, params=mydata)
无需将 mydata
字典转换为 json 字符串。
您可以按照@Eugene 的建议发送数据参数,但通常删除请求只包含 url,没有其他内容。原因是一个 RESTful url 应该唯一标识资源,从而无需提供额外的删除参数。另一方面,如果您的 'APIKEY' 与身份验证有关,那么它应该是 headers 的一部分而不是请求数据,就像这样。
headers = {'APIKEY': 'xxx'}
response = requests.delete(url, data=json.dumps(payload), headers=headers)
我想使用下面 API 之后的 python 请求模块执行 HTTP DELETE;
https://thingspeak.com/docs/channels#create
DELETE https://api.thingspeak.com/channels/4/feeds
api_key=XXXXXXXXXXXXXXXX
我正在使用 python v2.7 和请求模块。我的 python 代码如下所示;
def clear(channel_id):
data = {}
data['api_key'] = 'DUCYS8xufsV613VX'
URL_delete = "http://api.thingspeak.com/channels/" + str(channel_id) + "/feeds"
r = requests.delete(URL_delete, data)
该代码不起作用,因为 requests.delete() 只能接受一个参数。正确的代码应该是什么样的?
你想要
import json
mydata = {}
mydata['api_key'] = "Jsa9i23jka"
r = requests.delete(URL_delete, data=json.dumps(mydata))
您必须使用命名输入 'data',我猜您实际上想要转储 JSON,因此您必须将字典 'mydata' 转换为json 字符串。您可以为此使用 json.dumps() 。
我不知道您使用的 API,但听上去您实际上想要传递 URL 参数,而不是数据,因为您需要:
r = requests.delete(URL_delete, params=mydata)
无需将 mydata
字典转换为 json 字符串。
您可以按照@Eugene 的建议发送数据参数,但通常删除请求只包含 url,没有其他内容。原因是一个 RESTful url 应该唯一标识资源,从而无需提供额外的删除参数。另一方面,如果您的 'APIKEY' 与身份验证有关,那么它应该是 headers 的一部分而不是请求数据,就像这样。
headers = {'APIKEY': 'xxx'}
response = requests.delete(url, data=json.dumps(payload), headers=headers)