我正在尝试使用模块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”对象不可下标
我发现这意味着它未能对地址进行地理定位,因为地址不够完整。 我想要的代码是跳过无法地理定位的列表元素,然后继续打印其他元素。
我该怎么办?
答案 0 :(得分:1)
好吧,您错过了非常重要的编码基础之一,即try... except
语句
您可能想做这样的事情:
for element in indirizzi:
try:
print(element)
target1=nom.geocode(element)[1]
print(target1)
coordinate.append(target1)
except NoneType:
pass