使用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 >>> csv.writer(open("out.csv","wb")) <_csv.writer object at> 你有它......在你的代码中一定是别的东西。如果您将整个内容发布到某个地方,您可能会得到更好的帮助。 我已经发布了使用 csv 的整个文件。你认为 Django 不支持 csv 吗? 【参考方案1】:

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

在 Django 中将 QuerySet 转换为 JSON

如何在python,django中将url解码为路径

如何在 Python 中将动画 .gif 转换为 .webm 格式?

在 Django REST Framework 中将 GET 参数转换为 Request 对象上的 POST 数据