csv 如何修复“TypeError:Python中的“'NoneType'对象不可下标”?

nbewdwxp  于 2023-04-27  发布在  Python
关注(0)|答案(1)|浏览(166)
我正在尝试编写一个Python脚本,该脚本读取CSV文件并根据其标题名称提取特定列。以下是我的代码:
import csv

def extract_columns(filename, cols):
    with open(filename, 'r') as f:
        reader = csv.DictReader(f)
        headers = reader.fieldnames
        indices = [headers.index(col) for col in cols]
        data = []
        for row in reader:
            data.append([row[i] for i in indices])
        return data

data = extract_columns('data.csv', ['Name', 'Age'])
print(data)

当我运行脚本时,我得到以下[红色]错误:

Traceback (most recent call last):
  File "test.py", line 12, in <module>
    data = extract_columns('data.csv', ['Name', 'Age'])
  File "test.py", line 8, in extract_columns
    data.append([row[i] for i in indices])
TypeError: 'NoneType' object is not subscriptable

我不知道为什么我会得到这个错误。有人能帮助我理解它的意思和如何修复它吗?
注意:CSV文件包含标题为“姓名”、“年龄”等的列。

o2gm4chl

o2gm4chl1#

在上面的代码中,
替换

data.append([row[i] for i in indices])

data.append([row[headers[i]] for i in indices])

相关问题