我知道以前有人问过这个问题,但我的问题与其他问题略有不同
我编写了一个python脚本来读取随机地址并返回它们的位置ID。这是我的excel文件的样子:
这是我的代码:
from googleplaces import GooglePlaces
import pandas as pd
import time
import xlrd
YOUR_API_KEY = <my_key>
google_places = GooglePlaces(YOUR_API_KEY)
loc = r"C:\Users\user\Desktop\test.xlsx"
wb = xlrd.open_workbook(loc)
sheet = wb.sheet_by_index(0)
for i in range(1,sheet.nrows):
read_address = sheet.cell_value(i,0)
query_result = google_places.text_search(
query=''+read_address)
for place in query_result.places:
print(place.name)
print(place.place_id)
控制台输出:
C:\Users\csjeemah\PycharmProjects\googleplaces\venv\Scripts\python.exe C:/Users/csjeemah/PycharmProjects/googleplaces/googleplaceID.py
777 Brockton Ave
ChIJmf-3TW6b5IkR1rx0eohvqPQ
30 Memorial Dr
ChIJXa_KpmGD5IkRYtpt2IsXmqg
Traceback (most recent call last):
File "C:/Users/csjeemah/PycharmProjects/googleplaces/googleplaceID.py", line 27, in <module>
query_result = google_places.text_search(
File "C:\Users\csjeemah\PycharmProjects\googleplaces\venv\lib\site-packages\googleplaces\__init__.py", line 353, in text_search
_validate_response(url, places_response)
File "C:\Users\csjeemah\PycharmProjects\googleplaces\venv\lib\site-packages\googleplaces\__init__.py", line 175, in _validate_response
raise GooglePlacesError(error_detail)
googleplaces.GooglePlacesError: Request to URL https://maps.googleapis.com/maps/api/place/textsearch/json?query=250+Hartford+Avenue%2C+Bellingham+MA+2019&radius=3200&language=en&key=mykey&sensor=false failed with response code: OVER_QUERY_LIMIT
在上面的控制台屏幕截图中,它返回了前2个地址的结果,然后出现了错误。现在我明白了我出现此错误的原因是因为我可以发出的请求数量有限,但正如上图所示:
现在,它会在失败之前检索更多地址:
C:\Users\csjeemah\PycharmProjects\googleplaces\venv\Scripts\python.exe C:/Users/csjeemah/PycharmProjects/googleplaces/googleplaceID.py
777 Brockton Ave
ChIJmf-3TW6b5IkR1rx0eohvqPQ
30 Memorial Dr
ChIJt_pwFGsUc2sR-ve6pnT9DlA
30 Memorial Dr
ChIJJatf08pZIWsRr2u-ppt2CyI
250 Hartford Ave
ChIJk567q-Jx5IkRGxbCzkmYU7A
Traceback (most recent call last):
File "C:/Users/csjeemah/PycharmProjects/googleplaces/googleplaceID.py", line 27, in <module>
query_result = google_places.text_search(
File "C:\Users\csjeemah\PycharmProjects\googleplaces\venv\lib\site-packages\googleplaces\__init__.py", line 353, in text_search
_validate_response(url, places_response)
File "C:\Users\csjeemah\PycharmProjects\googleplaces\venv\lib\site-packages\googleplaces\__init__.py", line 175, in _validate_response
raise GooglePlacesError(error_detail)
googleplaces.GooglePlacesError: Request to URL https://maps.googleapis.com/maps/api/place/textsearch/json?query=700+Oak+Street&radius=3200&language=en&key=mykey&sensor=false failed with response code: OVER_QUERY_LIMIT
我还尝试在每次查询后添加几秒钟的睡眠,但都失败了,有人能告诉我问题出在哪里吗
图像中的错误json清楚地表明您已经超过了PlacesAPI的每日请求配额
如果您希望继续,您需要将您的GCP项目与计费帐户相关联
直接从文档Usage Limits for Google Maps Platform Web Services
您可以通过以下方式超过Google地图平台web服务的使用限制:
在收到状态代码超过\u QUERY\u LIMIT的响应后,应用程序应确定超出了哪个使用限制。这可以通过暂停2秒钟并重新发送相同的请求来完成。如果状态代码仍然超过查询限制,则应用程序每天发送的请求太多。否则,应用程序每秒发送的请求太多
相关问题 更多 >
编程相关推荐