如何做到这一点,因此我只需要引用一次我的api密钥?

时间:2019-07-19 14:02:04

标签: python google-maps-api-3

我正在自学如何使用python和django访问google place api,以便在附近搜索各种类型的体育馆。

我只被教过如何在本地构建的数据库中使用python和django。

我对他们正在执行的四个不同搜索发出了完整的Get请求。我查看了示例,但似乎没有一个适合我。

allgyms = requests.get('https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=38.9208,-77.036&radius=2500&type=gym&key=AIzaSyDOwVK7bGap6b5Mpct1cjKMp7swFGi3uGg')
all_text = allgyms.text
alljson = json.loads(all_text)

healthclubs = requests.get('https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=38.9208,-77.036&radius=2500&type=gym&keyword=healthclub&key=AIzaSyDOwVK7bGap6b5Mpct1cjKMp7swFGi3uGg')
health_text = healthclubs.text
healthjson = json.loads(health_text)

crossfit = requests.get('https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=38.9208,-77.036&radius=2500&type=gym&keyword=crossfit&key=AIzaSyDOwVK7bGap6b5Mpct1cjKMp7swFGi3uGg')
cross_text = crossfit.text
crossjson = json.loads(cross_text)

我真的想向正确的方向指出如何在更改关键字时仅一次引用api密钥。

1 个答案:

答案 0 :(得分:0)

尝试此方法以提高可读性和重用性

BASE_URL = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?'
LOCATION = '38.9208,-77.036'
RADIUS = '2500'
TYPE = 'gym'
API_KEY = 'AIzaSyDOwVK7bGap6b5Mpct1cjKMp7swFGi3uGg'
KEYWORDS = ''

allgyms = requests.get(BASE_URL+'location='+LOCATION+'&radius='+RADIUS+'&type='+TYPE+'&key='+API_KEY) all_text = allgyms.text 
alljson = json.loads(all_text)

KEYWORDS = 'healthclub'
healthclubs = requests.get(BASE_URL+'location='+LOCATION+'&radius='+RADIUS+'&type='+TYPE+'&keyword='+KEYWORDS+'&key='+API_KEY) 
health_text = healthclubs.text 
healthjson = json.loads(health_text)


KEYWORDS = 'crossfit'
crossfit = requests.get(BASE_URL+'location='+LOCATION+'&radius='+RADIUS+'&type='+TYPE+'&keyword='+KEYWORDS+'&key='+API_KEY) 

cross_text = crossfit.text 
crossjson = json.loads(cross_text)

如V-R在评论中所建议,您可以进一步定义函数,从而使事情更可重用,从而可以在应用程序的其他位置使用该函数

功能实现

def makeRequest(location, radius, type, keywords):
    BASE_URL = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?'
    API_KEY = 'AIzaSyDOwVK7bGap6b5Mpct1cjKMp7swFGi3uGg'
    result = requests.get(BASE_URL+'location='+location+'&radius='+radius+'&type='+type+'&keyword='+keywords+'&key='+API_KEY)
    jsonResult = json.loads(result)
    return jsonResult

函数调用

json = makeRequest('38.9208,-77.036', '2500', 'gym', '')

让我知道是否存在问题