如何在Python中解析keyrerror:<variable>?

2024-05-19 22:47:59 发布

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

嗨,我正在尝试打开一个简单的csv文件,文件头来自外部文件:

下一个文件名为:名称.csv以下内容:

Leo,Days,Ju
Tomas,Lee,Bruce
Max,Perez,Smith

如果我编码:

^{pr2}$

结果如下:

Leo,Ju
Tomas,Bruce
Max,Smith

但是如果有一个额外的文件头名为hdr_名称.txt使用:

['name', 'paterno', 'materno']

有了这个新代码:

import csv
sep = ','
fieldnames =  open('hdr_name.txt', 'r').read()
with open('name.csv') as csvfile:
    print(fieldnames)
    reader = csv.DictReader(csvfile,fieldnames)
    for row in reader:
        list = (row['name'], \
            row['materno'])
        print (sep.join(list))

结果是:

Traceback (most recent call last):
  File "<stdin>", line 5, in <module>
KeyError: 'name'

但是如果我在fieldnames中要求'name',是吗!在

>>> 'name' in fieldnames
True
>>> 

我做错了什么,从外部文件打开头?在


Tags: 文件csvnameintxt名称hdrmax
1条回答
网友
1楼 · 发布于 2024-05-19 22:47:59

fieldnames是一个如下所示的字符串:

"['name', 'paterno', 'materno']"

当然,成员资格测试将返回true,但这并不意味着fieldnames是一个列表。记住,file.read返回一个字符串-您仍然需要将其转换为一个列表。在

这看起来不像JSON,所以我建议ast

^{pr2}$

相关问题 更多 >