Joh*_*Koh 3 python google-maps
我正在尝试使用Google地图服务的Python客户端来使用Places API提取地点列表.
这是GitHub页面:https://github.com/googlemaps/google-maps-services-python 这是文档页面:https://googlemaps.github.io/google-maps-services-python/docs/2.4 0.4 /#模块googlemaps.exceptions
在.places def中,我需要以字符串格式输入page_token以获得下一个10个列表.当我运行下面的代码时,它一直显示INVALID_REQUEST
这是我的代码:
places_result = gmaps.places(query="hotels in Singapore", page_token='')
for result in places_result['results']:
print(result['name'])
try :
places_result = gmaps.places(query="hotels in Singapore", page_token=places_result['next_page_token'])
except ApiError as e:
print(e)
else:
for result in places_result['results']:
print(result['name'])
Run Code Online (Sandbox Code Playgroud)
好吧,经过数小时的试验和错误.我注意到我需要添加一个time.sleep(2)才能使它工作.我不确定为什么但它有效.
它失败了time.sleep(1),time.sleep(2)及以上将解决问题.
希望有人能够了解背后的原因.
这是我的代码,用于检索Places并转到下一页直到结束.记得替换1.您在"您这里的关键"和2.你想在"搜索某些内容"搜索字符串键.
import googlemaps
import time
gmaps = googlemaps.Client(key='YOUR KEY HERE')
def printHotels(searchString, next=''):
try:
places_result = gmaps.places(query=searchString, page_token=next)
except ApiError as e:
print(e)
else:
for result in places_result['results']:
print(result['name'])
time.sleep(2)
try:
places_result['next_page_token']
except KeyError as e:
print('Complete')
else:
printHotels(searchString, next=places_result['next_page_token'])
if __name__ == '__main__':
printHotels('SEARCH SOMETHING')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |