执行 Python 代码时出现 KeyError



我在运行我的 python 脚本时遇到低于 keyError,该脚本从一个 csv 导入数据,修改它并写入另一个 csv。

代码片段:

import csv
Ty = 'testy'
Tx = 'testx'

ifile = csv.DictReader(open('test.csv'))
cdata = [x for x in ifile]
for row in cdata:
    row['Test'] = row.pop(Ty)

执行时看到错误:

 row['Test'] = row.pop(Ty)
KeyError: 'testy'

知道吗?

谢谢

可能您的 csv 没有标头,因为您没有定义密钥名称,因此完成了密钥的规范。DictReader需要参数fieldnames,以便它可以相应地将其作为键(标头)映射到值。

所以你应该做一些类似读取csv文件的事情:

ifile = csv.DictReader(open('test.csv'), fieldnames=['testx', 'testy'])

如果您不想传递 fieldnames 参数,请尝试了解 csv 定义其标头的位置,请参阅维基百科文章:

第一条记录可能是"标题",其中包含列名 每个字段(没有可靠的方法来判断文件是否 这样做或不这样做;但是,使用除 此类列名称中的字母、数字和下划线)。

Year,Make,Model
1997,Ford,E350
2000,Mercury,Cougar

您可以将'testy''testx'放入csv中,不要将fieldnames传递给DictReader

根据错误消息,test.csv的第一行缺少testy

test.csv中尝试此类内容

col_name1,col_name2,testy
a,b,c
c,d,e

请注意,testy周围不应有任何空格/制表符。

相关内容

  • 没有找到相关文章

最新更新