无法通过Geopy进行地理定位,发生命名错误:TypeError:“ NoneType”对象无法下标

时间:2019-06-01 21:17:22

标签: python nonetype geopy nominatim

我正在尝试使用模块Geopy(功能Nominatim)对地址列表进行地理定位(包含在CSV文件中)。 这是我的代码:

import pandas as pd

from geopy.geocoders import Nominatim 

df = pd.read_csv('incidenti genova 3.csv', delimiter=';', error_bad_lines=False)
indirizzi = df.descrizione_strada

nom=Nominatim(user_agent="my-application") 

coordinate=[]

for element in indirizzi:
    print(element)
    target1=nom.geocode(element)[1]
    print(target1)
    coordinate.append(target1)

运行它时,它会打印列表的第一个地址,然后出现此错误:

  

TypeError跟踪(最近的呼叫   last)
in()
       13列印(元素)
       14
  ---> 15 target1 = nom.geocode(element)[1]
       16个print(target1)
       17坐标.append(target1)

     

TypeError:“ NoneType”对象不可下标

我发现这意味着它未能对地址进行地理定位,因为地址不够完整。 我想要的代码是跳过无法地理定位的列表元素,然后继续打印其他元素。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

好吧,您错过了非常重要的编码基础之一,即try... except语句

您可能想做这样的事情:

for element in indirizzi:
  try: 
   print(element)
   target1=nom.geocode(element)[1]
   print(target1)
   coordinate.append(target1)
  except NoneType:
   pass