2011-02-01 101 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循環中迭代時顯示的那樣。

(好的,它實際上是一個可迭代的,不是一個列表,但點代表。)

相關問題