相关文章推荐
不要命的拖把  ·  kill pid 0 windows-掘金·  2 年前    · 

将curl命令转换为python请求的问题

1 人关注

我想用API从一个网站上抓取一些数据,但我在将例子中的curl命令转换为python请求时遇到了麻烦。

示例curl命令

curl -X POST "some_url" \
-H "accept: application/json" \
-H "Authorization: <accesstoken>" \
-d @- <<BODY 

我那些没有成功的Python请求

headers = {
    'Authorization': "Bearer {0}".format(access_token)
response = requests.request('GET', "some_url", 
                            headers=headers, allow_redirects=False)

我得到错误代码400,谁能帮我找出问题所在?

4 个评论
你的cURL请求提到了POST,但你用python代码做的是GET,有什么原因吗?
@razdi 我也试过用POST,但没有成功,我对curl的格式不熟悉,所以我只是试了一下。你能在python中告诉我这个curl命令的正确格式吗?
这可能不是解决方案,但该工具实际上可能让你接近。 curl.trillworks.com
替换代码0】是什么类型的数据?
python
api
curl
python-requests
efsee
efsee
发布于 2019-08-14
1 个回答
Nickolay
Nickolay
发布于 2019-08-15
已采纳
0 人赞同

你的curl的等效请求代码应该是。

import requests
headers = {
    'accept': 'application/json',
    'Authorization': '<accesstoken>',
data = "{} "
response = requests.post('http://some_url', headers=headers, data=data)

你可以使用https://curl.trillworks.com/来转换你的实际curl调用(注意,它不会处理heredocs,如你的例子)。

如果你看到curl和你的python代码之间有不同的行为,转储HTTP请求并进行比较。