在Django中使用Python将数据库导出为CSV
我正在写一段小代码,这段代码是我Django应用的一部分。它的目的是从数据库表(MySql)中获取数据,并生成一个csv文件。可能我遇到的错误很简单,但我就是无法解决。
文件名:write_to_csv.py
import csv
def createCSV():
from django.db import connection, transaction
cursor = connection.cursor()
cursor.execute("select * from avg_max_min;")
csv_writer = csv.writer(open("out.csv", "wt"), delimiter=',')
csv_writer.writerow([i[0] for i in cursor.description]) # write headers
csv_writer.writerows(cursor)
del csv_writer # this will close the CSV file
错误
异常信息:
'模块'对象没有'writer'这个属性
异常位置:C:\Python26\Lib\site-packages\django\bin\report\src\report ..\report\report_view\write_to_csv.py 的createCSV函数,第6行
2 个回答
1
我猜这可能是设置的问题(类似于这个)。确保你没有一个叫做 csv.py 的文件,或者其他什么奇怪的东西,这些可能会“遮挡”掉 Python 的 csv
模块。
2
在使用open
的时候,第二个参数应该是wb
,而不是wt
。除此之外,看起来你做的都没错。
如果还是不行的话,能不能更新一下你的问题,告诉我你执行dir(csv)
的结果?(很可能是你在Python环境中或者和write_to_csv.py
在同一个文件夹里,有其他同名的模块。)