我刚开始探索API。到目前为止这是我的代码。对于locu API,这可行,但对于Zomato,他们使用我不知道如何使用的curl头请求。有人可以指导或告诉我怎么做?
import json
import urllib2
Key = 'Zomato_key'
url = 'https://developers.zomato.com/api/v2.1/categories'
json_obj = urllib2.urlopen(url)
data = json.load(json_obj)
print data
答案 0 :(得分:2)
通过查看Zomato API docs,似乎必须在标头中设置参数user-key
。
以下作品:
import json
import urllib2
Key = '<YOUR_ZOMATO_API_KEY>'
url = "https://developers.zomato.com/api/v2.1/categories"
request = urllib2.Request(url, headers={"user-key" : Key})
json_obj = urllib2.urlopen(request)
data = json.load(json_obj)
print data
如果您想要一种更优雅的方式来查询API,请查看requests
模块(您可以使用pip install requests
安装)。
我建议你:
import json
import requests
Key = <YOUR_ZOMATO_API_KEY>'
url = "https://developers.zomato.com/api/v2.1/categories"
if __name__ == '__main__':
r = requests.get(url, headers={'user-key': Key})
if r.ok:
data = r.json()
print data
注意:我建议你从StackOverflow中删除你的密钥,如果你关心自己保留它。
答案 1 :(得分:0)
这对我不起作用,你能为我建议其他方法吗? ->尝试编译时的代码会花费很长时间,并且在内置的请求方法中返回回溯错误
但是curl命令起作用 curl -X GET --header“ Accept:application / json” --header“ user-key:c5062d18e16b9bb9d857391bb32bb52f”“ https://developers.zomato.com/api/v2.1/categories”