使用谷歌时忽略错误映射不存在的数据

时间:2017-02-08 14:22:05

标签: python google-maps google-maps-api-3

我试图从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'。

1 个答案:

答案 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