从curl命令格式化python修补程序请求

从curl命令格式化python修补程序请求,python,curl,python-requests,Python,Curl,Python Requests,我有一个curl命令,可以在本地机器上运行,但将其转换为python脚本会给我带来困难。下面是有效的curl命令: curl-X面片“http://localhost:9999/pins/1“-H”内容类型:application/json“-d”{“state”:“on”}” 这里是我到目前为止关于python请求的内容: import requests url = 'http://localhost:9999/pins/1' payload = {'state':'on'} head =

我有一个curl命令,可以在本地机器上运行,但将其转换为python脚本会给我带来困难。下面是有效的curl命令:

curl-X面片“http://localhost:9999/pins/1“-H”内容类型:application/json“-d”{“state”:“on”}”

这里是我到目前为止关于python请求的内容:

import requests

url = 'http://localhost:9999/pins/1'
payload = {'state':'on'}
head = {'Content-Type':'application/json'}

r = requests.patch(url, payload, headers=head)
但我收到了400份回复。有什么方向吗

另外,如果我将其格式化为

r = requests.patch(url, data=payload)
我得到一个500响应码。还应该注意:我可以通过运行以下命令轻松运行一个简单的get请求

r = requests.get(url)

尝试以下操作以确保您的负载是有效的json

import requests
import json

url = 'http://localhost:9999/pins/1'
payload = {'state':'on'}
head = {'Content-Type':'application/json'}

r = requests.patch(url, data=json.dumps(payload), headers=head)

将此
r=requests.patch(url,data=payload)
更改为
r=requests.patch(url,json=payload)

将此
r=requests.patch(url,data=payload)
更改为
r=requests.patch(url,json=payload)
^非常感谢!我已经发布了一个答案,这样任何登陆的人都会看到答案,而不是评论
import requests

url = 'http://localhost:9999/pins/1'
payload = {'state':'on'}
head = {'Content-Type':'application/json'}

r = requests.patch(url, json=payload)