为什么csv.DictReader给我一个无属性错误?

时间:2011-02-01 17:07:39

标签: python csv

我的CSV文件是

200
Service

我在解释器中输入的代码是

snav = csv.DictReader(open("screennavigation.csv"), delimiter=',')
print snav.fieldnames
['200']

for line in snav:
...     print(line)
...
{'200': 'Service'}

snav["200"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: DictReader instance has no attribute '__getitem__'

我认为DictReader是为了返回字典。我怀疑我错过了一些非常明显的东西。

2 个答案:

答案 0 :(得分:4)

DictReader生成字典列表。每一行本身都是一个字典 - 当你在for循环中迭代时显示。

(好吧,它实际上是一个可迭代的,而不是列表,但重点是。)

答案 1 :(得分:3)

snav对象是DictReader实例,不应该作为字典访问。在迭代时,它会生成可以相应访问的字典:您需要line['200']