当CSV文件正确放置并且CSV fi中存在密钥时引发KeyError

2024-06-12 18:29:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个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文件的路径和列名,结果都是正确的(在没有听写器的情况下可以正常工作)。


Tags: csvcsvfile代码nameimport错误nlopen