它不在此处受支持的库下: https ://developers.google.com/api-client-library/python/reference/supported_apis
它只是不适用于 Python 吗?如果不是,它适用于什么语言?
它不在此处受支持的库下: https ://developers.google.com/api-client-library/python/reference/supported_apis
它只是不适用于 Python 吗?如果不是,它适用于什么语言?
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,搜索您在最后一行中输入的任何内容,替换“您的搜索字符串”。您需要为每次搜索构建其中一个 URL。在这种情况下,我已将其打印出来,以便您可以将其复制并粘贴到浏览器地址栏中,这将为您提供一个 JSON 文本对象的返回(在浏览器中),与您的程序提交该 URL 时所获得的相同。我建议使用 python requests库在您的程序中获取它,您只需获取返回的 URL 并执行以下操作即可:
response = requests.get(url)
接下来,您需要解析返回的响应 JSON,您可以通过使用json库对其进行转换来完成此操作(例如,查找json.loads)。通过 json.loads 运行该响应后,您将拥有一个包含所有结果的漂亮 Python 字典。您还可以将返回(例如从浏览器或保存的文件)粘贴到在线 JSON 查看器中,以便在编写代码以访问来自 json.loads 的字典时了解结构。
如果部分内容不清楚,请随时发布更多问题。
有人为 API 编写了一个包装器:https ://github.com/slimkrazy/python-google-places
基本上它只是带有 JSON 响应的 HTTP。它更容易通过 JavaScript 访问,但它同样易于使用urllib
,并且json
库可以连接到 API。
以西结的回答对我很有帮助,所有的功劳都归功于他。我必须更改他的代码才能使其与 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 并且传感器被删除,因为谷歌正在弃用它。