我试图从google maps api获取有关某些行程的距离和持续时间的一些信息。问题是我试图找到从某个城市到其他一些城市的行程,在某些情况下,没有现有的道路。在这种情况下,谷歌地图说他们没有结果。好吧,但我是python的新手,所以我现在不知道如何忽略这个错误并继续计算其余的行程。
gmaps = googlemaps.Client(key='API_KEY')
Indice_Ciudad=0
input=open(r'C:\Users\SantiagoCC\Desktop\destinos.csv','r')
output=open(r'C:\Users\SantiagoCC\Desktop\Distancias_a_Corabastos.csv','w')
try:
reader=csv.reader(input)
writer=csv.writer(output)
for row in list(reader)[1:]:
ciudad=row[Indice_Ciudad]
print(ciudad)
distancias=gmaps.distance_matrix((4.630562, -74.159983), ciudad)
writer.writerow((ciudad,
distancias['rows'][0]['elements'][0]['distance']['value'],
distancias['rows'][0]['elements'][0]['duration']['value'], ))
当一个itineraire不存在时,它只是说KeyError' distance'。
答案 0 :(得分:0)
您可以捕获异常并相应地处理它。请注意,这将包括其他keyerrors(不仅仅是在距离字段上)。
gmaps = googlemaps.Client(key='API_KEY')
Indice_Ciudad=0
input=open(r'C:\Users\SantiagoCC\Desktop\destinos.csv','r')
output=open(r'C:\Users\SantiagoCC\Desktop\Distancias_a_Corabastos.csv','w')
reader=csv.reader(input)
writer=csv.writer(output)
for row in list(reader)[1:]:
try:
ciudad=row[Indice_Ciudad]
print(ciudad)
distancias=gmaps.distance_matrix((4.630562, -74.159983), ciudad)
writer.writerow((ciudad,
distancias['rows'][0]['elements'][0]['distance']['value'],
distancias['rows'][0]['elements'][0]['duration']['value'], ))
except KeyError, e:
print "Some data is missing from row {}, got {}".format(row, e)
pass # Move on to next row