如果某些文件中不存在“国家/地区”等特定列,如何防止出现错误?
import csv
files = glob.glob ('..\\*.csv')
for file in files:
countries = []
with open ('data.csv', newline='') as infile:
reader = csv.DictReader(infile)
for row in reader:
countries.append(row['Country'])
print (countries)
答案 0 :(得分:1)
您可以检查字段是否存在
if 'Country' in reader.fieldnames:
...
或者您可以在行级别处理问题,就像使用任何类似字典的结构一样。您可以使用.get
方法,如果密钥不存在,将返回None:
countries.append(row.get('Country'))
或者您可以使用setdefault
方法并提供默认值(也可以使用get):
row.setdefault('Country', 'Unknown')
甚至将代码包装在try-catch块中:
try:
countries.append(row['Country'])
except KeyError:
pass
将此与列表推导相结合:
if 'Country' in reader.fieldnames:
countries = [row.get('Country') for row in reader]