我在哪里可以找到适用于Python的Google Places API客户端库?

时间:2013-08-28 10:12:47

标签: google-maps google-places-api

这不在受支持的库下: https://developers.google.com/api-client-library/python/reference/supported_apis

它不适用于Python吗?如果没有,可以使用哪种语言?

3 个答案:

答案 0 :(得分:8)

Andre的答案指出您在正确的位置引用API。由于您的问题是特定于python的,因此请允许我向您展示在python中构建提交的搜索URL的基本方法。在您注册Google的免费API密钥后的几分钟内,此示例将帮助您一直搜索内容。

ACCESS_TOKEN = <Get one of these following the directions on the places page>

import urllib

def build_URL(search_text='',types_text=''):
    base_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json'     # Can change json to xml to change output type
    key_string = '?key='+ACCESS_TOKEN                                           # First think after the base_url starts with ? instead of &
    query_string = '&query='+urllib.quote(search_text)
    sensor_string = '&sensor=false'                                             # Presumably you are not getting location from device GPS
    type_string = ''
    if types_text!='':
        type_string = '&types='+urllib.quote(types_text)                        # More on types: https://developers.google.com/places/documentation/supported_types
    url = base_url+key_string+query_string+sensor_string+type_string
    return url

print(build_URL(search_text='Your search string here'))

此代码将构建并打印一个URL,搜索您在最后一行中放置的内容,替换&#34;您的搜索字符串在这里&#34;。您需要为每次搜索构建其中一个URL。在这种情况下,我打印了它,以便您可以将其复制并粘贴到浏览器地址栏中,这将使您返回(在浏览器中)JSON文本对象,就像您的程序提交时一样。 URL。我建议使用python 请求库来获取程序中的内容,只需获取返回的URL并执行此操作即可:

response = requests.get(url)

接下来,您需要解析返回的响应JSON,您可以通过使用 json 库进行转换(例如,查找json.loads)。通过json.loads运行该响应后,您将获得一个包含所有结果的精美python字典。您还可以将该返回(例如,从浏览器或保存的文件)粘贴到online JSON viewer中,以便在编写代码时了解结构,以访问json.loads中出现的字典。

如果部分内容尚未明确,请随时发布更多问题。

答案 1 :(得分:3)

有人为API编写了一个包装器:https://github.com/slimkrazy/python-google-places

基本上它只是带有JSON响应的HTTP。通过JavaScript访问更容易,但使用urllibjson库连接到API也很容易。

答案 2 :(得分:1)

以西结的回答对我很有帮助,所有的功劳归功于他。我必须更改他的代码才能使用python3。以下是我使用的代码:

def build_URL(search_text='',types_text=''):
    base_url = 'https://maps.googleapis.com/maps/api/place/textsearch/json'
    key_string = '?key=' + ACCESS_TOKEN
    query_string = '&query=' + urllib.parse.quote(search_text)
    type_string = ''
    if types_text != '':
        type_string = '&types='+urllib.parse.quote(types_text)
    url = base_url+key_string+query_string+type_string
    return url

更改是urllib.quote更改为urllib.parse.quote并且传感器已被删除,因为谷歌正在弃用它。