使用python在django中将数据库转换为csv
Posted
技术标签:
【中文标题】使用python在django中将数据库转换为csv【英文标题】:database to csv in django using python 【发布时间】:2022-01-07 21:31:54 【问题描述】:我正在编写这个小代码,它是我的 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
错误 异常值: “模块”对象没有属性“作者” 异常位置:C:\Python26\Lib\site-packages\django\bin\report\src\report ..\report\report_view\write_to_csv.py in createCSV, line 6
【问题讨论】:
如果您进入 django shell 并执行以下操作:import csv
后跟 csv.writer
它会说什么?
输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 (InteractiveConsole) >>> import csv >>> csv.writer open
的第二个参数应该是 wb
而不是 wt
。除此之外,看起来你做的一切都是正确的。
如果还是不行,你能用dir(csv)
的结果更新你的问题吗? (很可能您的 Python 发行版中或与 write_to_csv.py
同名的目录中安装了一些其他模块。)
【讨论】:
我尝试了第一个,但它不起作用。请详细说明 dir(csv) ..我不明白。另外,我确信除了这个文件之外,我没有任何名为 write_to_csv.py 的文件。 @Compuser7 -dir
仅提供模块中公开可用的内容。我怀疑你在同一个地方有一些其他文件write_to_csv.py
被命名为csv.py
——或者你有另一个名为 csv 的模块隐藏了内置模块(但显然只在你的运行环境中,因为你可以通过 shell 访问它。)
>>> dir(csv) ['Dialect', 'DictReader', 'DictWriter', 'Error', 'QUOTE_ALL', 'QUOTE_MINIMAL', 'QUOTE_NONE', 'QUOTE_NONNUMERIC', 'Sniffer ', 'StringIO', '_Dialect', 'all', 'builtins', 'doc', 'file', 'name', 'package', 'version', 'excel', 'excel_tab', 'field_size_limit', ' get_dialect'、'list_dialects'、're'、'reader'、'reduce'、'register_dialect'、'unregister_dialect'、'writer']【参考方案2】:
我猜这是设置问题(类似于this)。确保您没有名为 csv.py 的文件或其他“隐藏”python 的 csv
模块的奇怪文件。
【讨论】:
以上是关于使用python在django中将数据库转换为csv的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 中将 Http Post 参数的 Json 值转换为 Python 字典?
使用python在django中将任何格式(flv、3gp、MXF等)的视频转换为MP4