0

当某些文件中不存在某些列(例如“国家”)时,如何防止错误?

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)
4

1 回答 1

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]
于 2013-11-10T16:16:29.940 回答