_csv.reader' 对象不支持下标操作

14

我在使用Python的csv模块时遇到了问题。

这是我编写的用于解析CSV的代码:

def parse(data):
    data_delim = data.split("\n")
    data_list = csv.reader(data_delim)
    return data_list

我遇到的问题如下:

print(data_list[Enum.check_name(skill)][1])

抛出此错误

_csv.reader' object is not subscriptable

我有一个简陋的解决方案,但我更愿意使用类似上面代码的东西,有人有解决这个问题的方法吗?

i = 0
for a in data_list:
    if i == Enum.check_name(skill):
        print(a[1])
    i += 1

你打算让 data_list[Enum.check_name(skill)] 做什么?你不能使用索引来表示“获取第一列中具有这个值的行”。 - BrenBarn
我本意是获取枚举类型 Enum.check_name(skill) 所对应的索引值,例如我会将其与写入 data_list[1][1] 以获取第二行第二列的值进行比较。 - user3983157
1个回答

39

正如错误信息所述,CSV读取器不支持索引。 csv.reader 返回的值不是列表,而是一行的迭代器。

如果你想要,你可以使用 data_list = list(csv.reader(data_delim)) 将所有行制作成列表。然后,你可以像处理其他列表一样索引该列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接