【问题标题】:Why is csv.DictReader giving me a no attribute error?为什么 csv.DictReader 给我一个无属性错误?
【发布时间】:2011-02-01 17:07:38
【问题描述】:

我的 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 是用来返回字典的。我怀疑我遗漏了一些非常明显的东西。

【问题讨论】:

    标签: python csv


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-23
        • 2017-12-17
        • 2013-11-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多