2015-12-20 76 views
-2

如何使用python 2.7连接到API。我最近试图使用urllib2.urlopen('带APIkey的'pastedUrl'),它不起作用。当我尝试这个时候没有任何反应它只是冻结。使用python 2.7和urllib2连接到API

import urllib2 
import json 

//api key is not real api key 
locu_api = '12345' 

url = 'https://api.locu.com/v1_0/venue/search/?has_menu=TRUE&locality=Austin&api_key=locu_api' 
json_obj = urllib2.urlopen(url) 

data = json.load(json_obj) 

print data 

*更新15年12月20日 我不想把我的API键值中有没有所以我做了一个名为“locu_api”变量。但在这里它是这正是我在我的代码:

import urllib2 
import json 

locu_api = '6252bab312fd63a8b43f273bbbc5b8ae973d982' 

url = 'https://api.locu.com/v1_0/venue/search/?has_menu=TRUE&locality=Austin&api_key=6252bab312fd63a8b43f273bbbc5b8ae973d982' 
json_obj = urllib2.urlopen(url) 

data = json.load(json_obj) 

print data 
+0

你为什么要在这里发布一个API密钥。 _Ever_。 –

+0

我修改了它。这不是真的。 – villaa19

回答

1

与您的代码的问题是:你不使用你的API密钥的任何地方,该网址看起来应该像

url = 'https://api.locu.com/v1_0/venue/search/?has_menu=TRUE&locality=Austin&api_key={}'.format(locu_api) 

随着你的要求你应该得到一个HTTP Error 401。如果你的应用程序真的死机,你的连接有问题

+0

谢谢你的帮助。请参阅更新的代码。你是否说我需要在我的API密钥周围花括号? – villaa19

+0

@ a19i23不,他不是。这是新的格式化语法,按照[PEP 3101](https://www.python.org/dev/peps/pep-3101/)。 –