Google Maps Services的Python客户端无法传递Page_Token

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)

Joh*_*Koh 9

好吧,经过数小时的试验和错误.我注意到我需要添加一个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)