将curl转换为python

时间:2016-02-16 22:27:33

标签: python curl

我有一个有效的卷曲请求:

curl "https://api.propublica.org/campaign-finance/v1/2016/candidates/search.json?query=Wilson" 
-H "X-API-Key: PROPUBLICA_API_KEY"

我如何将其翻译成Python?我尝试了以下方法:

payload = {'X-API-Key': 'myapikey'}
r = requests.get("https://api.propublica.org/campaign-finance/v1/2016/candidates/search.json?query=Wilson", params = payload)

然后,我得到了:

>>> print(r.url)
https://api.propublica.org/campaign-finance/v1/2016/candidates/search.json?query=Wilson&X-API-Key=myapikey
>>> r.text
u'{"message": "Forbidden"}'

2 个答案:

答案 0 :(得分:2)

curl作品翻译为python的最简单方法是使用pycurl代替requests

但是,Forbidden问题不依赖于requestspycurl。它来自将X-API-Key作为查询参数发送,而不是将其作为标题发送(就像您在curl调用中所做的那样)。

答案 1 :(得分:-1)

试试这个:

import urllib2
url = your_url
payload = {'X-API-Key': 'myapikey'}
req = Request(url, payload, {'Content-Type': 'application/json'})
open = urlopen(req)

之后,您可以使用任何您想要打印的方式。希望这对你有用。