为什么csv.DictReader给我返回没有属性错误?
我的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 个回答
4
DictReader
会生成一个字典的列表。每一行数据本身就是一个字典,就像你在循环中展示的那样。
(其实它是一个可迭代对象,而不是一个列表,但这个意思是一样的。)
3
snav
是一个 DictReader
的实例,不应该像普通字典那样去访问它。当你遍历它的时候,它会生成字典,你可以按照这种方式来访问:你需要用 line['200']
。