Failed geolocalization with Geopy, Nominatim: TypeError: 'NoneType' object is not subscriptable

Failed geolocalization with Geopy, Nominatim: TypeError: 'NoneType' object is not subscriptable

我正在尝试使用模块 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                                 
Traceback (most recent call last)<br> <ipython-input-9-765a06164536> in <module>()<br>
     13     print(element)<br>
     14 <br>
---> 15     target1=nom.geocode(element)[1]<br>
     16     print(target1)<br>
     17     coordinate.append(target1)<br>

TypeError: 'NoneType' object is not subscriptable

我发现这意味着地址地理定位失败,因为地址不够完整。 我想要的是跳过无法地理定位的列表元素并继续打印其他元素的代码。

我该怎么做?

嗯,你错过了编码的一个非常重要的基础,即 try... except 语句

你可能想做这样的事情:

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