我有一个有效的卷曲请求:
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"}'
答案 0 :(得分:2)
将curl
作品翻译为python
的最简单方法是使用pycurl
代替requests
。
但是,Forbidden
问题不依赖于requests
或pycurl
。它来自将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)
之后,您可以使用任何您想要打印的方式。希望这对你有用。