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
我正在尝试使用模块 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