如何将CURL转换为Python请求

时间:2018-01-07 05:43:16

标签: python curl python-requests

我目前正在尝试集成Stripe Connect,并遇到了流动的CURl POST请求:

curl https://connect.stripe.com/oauth/token \
   -d client_secret=SECRET_CODE \
   -d code="{AUTHORIZATION_CODE}" \
   -d grant_type=authorization_code

但是我对CURL很新,并且一直在做一些研究,并尝试使用请求包来完成它。这就是我目前的代码:

data = '{"client_secret": "%s", "code": "%s", "grant_type": "authorization_code"}' % (SECRET_KEY, AUTHORIZATION_CODE) 
response = requests.post('https://connect.stripe.com/oauth/token', json=data)

然而,这总是会返回一个响应代码400.我不知道我哪里出错了,任何指导都会得到充分的理解。

1 个答案:

答案 0 :(得分:2)

错误是因为您将data作为字符串传递,而json调用的requests.post参数预期为dict。你的代码应该是:

import requests

data = {
     "client_secret": SECRET_KEY, 
     "code": AUTHORIZATION_CODE, 
     "grant_type": "authorization_code"
} 

response = requests.post('https://connect.stripe.com/oauth/token', json=data)

查看请求库的More complicated POST requests文档。