我正在使用geopy的GoogleV3编写一个函数,从经纬度获取地址:
from retrying import retry
@retry(wait_exponential_multiplier=500, wait_exponential_max=4000, stop_max_attempt_number=5)
def get_address(lat, lon):
state = 'unknown'
country = 'unknown'
geo = GoogleV3(api_key='my-secret-api-key')
location = geo.reverse((lat, lon), timeout=10, exactly_one=True)
if location == None:
raise ValueError('a valid location for %d, %d is not found' % (lat, lon))
for item in location.raw['address_components']:
if u'administrative_area_level_1' in item[u'types']:
state = item['short_name']
if u'country' in item[u'types']:
country = item['long_name']
return state, country
此处的retrying
装饰器将在出现异常时自动重试。这里我想引发一个异常,以指示给定的lon
和{country
和{
不。在任何给定的调用中,函数既可以引发异常,也可以返回值。不能两者兼而有之。在
相关问题 更多 >
编程相关推荐