繁体   English   中英

Python csv.DictReader 返回 KeyError

[英]Python csv.DictReader returning KeyError

我正在尝试创建一个根据用户输入读取/写入 csv 文件的脚本。 它几乎模拟了密码管理器。 但是,当我尝试使用 csv.DictReader 通过脚本查看它时,它返回 KeyError。

csv 文件创建为空白,数据通过脚本本身输入。

import csv

with open('Pass.csv') as csv_file:

    csv_reader = csv.DictReader(csv_file, delimiter=',')
    for lines in csv_reader:
        print(f'{row["application"]} | {row["ID"]} | {row["password"]}')

我注意到如果我改变

print(f'{row["application"]} | {row["ID"]} | {row["password"]}')

print(lines)

它返回以下 output:

OrderedDict([(None, ['application', 'ID', 'password'])])
OrderedDict([(None, ['asd', 'dsa', 'asd'])])

所以我的问题是为什么它首先返回 None 这似乎是导致 KeyError 出现的问题。

链接中是我用来测试 DictReader 的 csv 文件: http://www.filedropper.com/pass_1

我运行了您的确切代码,但无法重现您的错误。 输入两个条目后,我得到:

>>> readPass()
Application | ID | Password
ap1 | id1 | pw1
application | ID | password
ap2 | id2 | pw2

如您所见,打印工作正常,但您确实有一个错误,即您正在为 CSV 文件的每个条目编写新标题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM