2011-02-01 38 views
3

我的CSV文件为什么csv.DictReader给我一个没有属性的错误?

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是为了返回一个字典。我怀疑我错过了一些残酷的事情。

回答

3

snav对象是DictReader实例,不应作为字典访问。在迭代它产生可相应访问字典:你需要line['200']

4

DictReader产生字典的列表。每一行本身就是一本字典 - 正如您在for循环中迭代时显示的那样。

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

相关问题