我有这个Python代码:import csv
csvfile = 'stations-nl-2014-01.csv'
try:
f = open(csvfile, 'r')
reader = csv.DictReader(f, delimiter=';')
for row in reader:
print(row['name'], '--', row['type'])
finally:
f.close()
我可以使用常规的csv.reader()方法,但我被告知使用csv.DictReader()是最佳实践,因为您可以根据列的名称来选择列,这使代码更具可读性。但是,当我使用普通的csv.reader()方法时,不会显示任何错误。使用听写器时,会出现以下错误:
print(row['name'], '--', row['type'])
KeyError: 'name'
当我将代码更改为:import csv
csvfile = 'stations-nl-2014-01.csv'
try:
f = open(csvfile, 'r')
reader = csv.reader(f, delimiter=';')
for row in reader:
print(row)
finally:
f.close()
…一切正常。但是使用csv.DictReader()并按列名选择行会引发错误。有人知道怎么解决这个问题吗?我已经仔细检查了.csv文件的路径和列名,结果都是正确的(在没有听写器的情况下可以正常工作)。