AttributeError: 'file'对象没有属性'DictReader
我正在创建一个临时的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文件,因为我有很大的数据集要从数据库中获取,接下来的步骤如果每次都加载数据会花费太多时间。
2 个回答
3
这个错误的另一个原因是你可能有一个叫做 csv.py
的 Python 脚本文件。
这个文件会遮住 Python 自带的 csv 模块的名字。
要解决这个问题,你可以把自己创建的 csv.py
文件改个名字。
4
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
模块了。