我正在尝试将API查询输入python。命令行
curl --header "Authorization:access_token myToken" https://website.com/id
提供一些json输出。myToken是一个十六进制变量,始终保持不变。我想从python进行此调用,以便我可以遍历不同的id并分析输出。有任何想法吗?在需要身份验证之前,我已经使用urllib2进行了此操作。我也看过了requests模块,但是不知道该怎么做。
非常感谢。
我正在尝试将API查询输入python。命令行
curl --header "Authorization:access_token myToken" https://website.com/id
提供一些json输出。myToken是一个十六进制变量,始终保持不变。我想从python进行此调用,以便我可以遍历不同的id并分析输出。有任何想法吗?在需要身份验证之前,我已经使用urllib2进行了此操作。我也看过了requests模块,但是不知道该怎么做。
非常感谢。
Answers:
该请求包有一个用于HTTP请求的一个非常好的API,加入了自定义标题是这样的(来源:官方文档):
>>> import requests
>>> response = requests.get(
... 'https://website.com/id', headers={'Authorization': 'access_token myToken'})
如果您不想使用外部依赖关系,则使用标准库的urllib2的相同内容如下所示(来源:缺少的手册):
>>> import urllib2
>>> response = urllib2.urlopen(
... urllib2.Request('https://website.com/id', headers={'Authorization': 'access_token myToken'})
>>> import requests
>>> response = requests.get('https://website.com/id', headers={'Authorization': 'access_token myToken'})
如果上述方法不起作用,请尝试以下操作:
>>> import requests
>>> response = requests.get('https://api.buildkite.com/v2/organizations/orgName/pipelines/pipelineName/builds/1230', headers={ 'Authorization': 'Bearer <your_token>' })
>>> print response.json()
Bearer <my_token>
则不对,因为响应就像请求未通过验证一样。
您是否尝试过该uncurl
软件包(https://github.com/spulec/uncurl)?您可以通过pip安装它pip install uncurl
。您的curl请求返回:
>>> uncurl "curl --header \"Authorization:access_token myToken\" https://website.com/id"
requests.get("https://website.com/id",
headers={
"Authorization": "access_token myToken"
},
cookies={},
)