【发布时间】:2018-11-16 20:09:32
【问题描述】:
我使用地理编码 API 来处理使用 Python 中的“地理编码器”模块的地址列表。就在几周前,我能够成功地做到这一点,但今天 API 在 2,500 次调用后停止响应。我没有收到任何错误响应,如果我重新启动该过程,我能够获得额外的 2,500 个响应,但之后再没有任何响应。有谁知道为什么会发生这种情况?唯一提到 2,500 的上限是以前定价模型的每日免费通话限制。
编辑:有趣的是,这个问题似乎与我对地理编码器模块的使用无关。当我自己滚动时,我没有遇到同样的问题。
使用地理编码器的功能:
def get_data(query):
result = geocoder.google(query, key=apikey)
return {'formatted_address':result.address,
'lat':result.lat,
'long':result.lng}
仅使用请求的函数:
def get_data(query):
try:
api_response = requests.get('https://maps.googleapis.com/maps/api/geocode/json?address='+query+'&key='+apikey)
read_response = api_response.json()
address = read_response['results'][0]['formatted_address']
lat = read_response['results'][0]['geometry']['location']['lat']
lng = read_response['results'][0]['geometry']['location']['lng']
return {'formatted_address':address, 'lat':lat, 'lng':lng}
except:
return None
值得注意的是,自从上次成功运行以来,我正在使用一台新计算机,并且自从我切换后,我遇到了一些间歇性的公司防火墙怪异现象。这个问题出现在我身边似乎是一种奇怪的行为,我确信我遇到了 API 限制。我想我只会在地理编码器的 git 上记录问题并继续前进。
【问题讨论】:
-
可能是您的代码上限为 2500。在某处硬编码?以字符串形式搜索。