【问题标题】:AttributeError: 'file' object has no attribute 'DictReader'AttributeError:“文件”对象没有属性“DictReader”
【发布时间】:2014-08-07 15:25:45
【问题描述】:

我正在创建一个临时 CSV 文件:

for formname in formnamesFinal:
    csv = tempfile.NamedTemporaryFile("w", prefix=formname+'_', suffix=".csv", dir = "/var/tmp/")
csv.write(....)

我正在里面写一些东西。现在我想用 DictReader 读取这个文件:

content = csv.DictReader(csv, delimiter=';')
for contenthelp in content:
    contentlist.append(contenthelp)

但我收到以下错误:

AttributeError: 'file' object has no attribute 'DictReader'

我必须逐步浏览临时 CSV 文件,因为我有大量数据集要从数据库中获取以执行以下步骤,并且一遍又一遍地加载数据会花费太多时间。

【问题讨论】:

    标签: python csv dictionary temporary-files


    【解决方案1】:
    • 导致此错误的另一个原因是有一个文件名为 csv.py 的 python 脚本。
    • 这会隐藏 Python 内置 csv 模块的名称。
    • 通过重命名用户创建的csv.py 脚本文件来解决问题。

    【讨论】:

    • 嗯,这就解释了!谢谢!
    【解决方案2】:
    csv = tempfile.NamedTemporaryFile("w", prefix=formname+'_', suffix=".csv", dir = "/var/tmp/")
    

    这一行将覆盖您对csv 模块的引用。尝试将其重命名为其他名称。

    my_csv = tempfile.NamedTemporaryFile("w", prefix=formname+'_', suffix=".csv", dir = "/var/tmp/")
    

    现在您应该可以再次正确访问csv

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 2021-04-19
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多