【发布时间】:2018-01-27 17:30:46
【问题描述】:
我的 CSV 文件:
website, username, password
google.com, test1, lamepass
instagram.com, test2, passlame
我的python脚本:
with open(database_path) as database:
csv_read = csv.DictReader(database)
for card in csv_read:
print(card['website'])
返回:
google.com
instagram.com
但是这段代码:
with open(database_path) as database:
csv_read = csv.DictReader(database)
for card in csv_read:
print(card['password'])
返回:
KeyError: 'password'
我不明白这个问题,在线资源只是显示示例,没有一个解释这个问题。他们确实谈论了KeyErrors,但他们似乎没有解决 CSV 文件如何包含密钥 ('password'),但仍然返回密钥错误。
我做错了吗?
【问题讨论】:
-
您还可以将关键字参数
skipinitialspace=True添加到您的csv.DictReader(database)调用中,而不是物理删除文件中分隔符之间的空格字符。请参阅文档中的Dialect.skipinitialspace。此外,如果您在for循环中添加了print(card),您会立即看到字典中没有显示等于'password'的键。