【问题标题】:Django template csv writer inserts blank linesDjango 模板 csv writer 插入空行
【发布时间】:2018-05-28 06:33:57
【问题描述】:

我正在通过写入header_template.csv 来打印一些 csv 文件:

{% load devicetags %}
{% get_headers device_list %}

现在,Django 在get_headers 的输出前后添加了一个空行,这是一个逗号分隔的字符串。输出如下所示:

*blank line*
a,b,c
*blank line*

我知道这种行为经常发生在 python 中,通常我只需要使用'wb' 打开文件,但我不是直接在此处打开文件,因此无法传递标志。我可以告诉 Django 使用'wb' 而不是'w'吗?

【问题讨论】:

  • 如果将两行改为一行会怎样:{% load devicetags %}{% get_headers device_list %}?
  • 谢谢,我认为这不会有什么不同!
  • 您不应该真正使用模板来生成 CSV。使用 csv 模块直接在您的视图中生成它。

标签: django python-2.7 csv


【解决方案1】:

通过模板呈现 CSV 并不是理想的方式 - 除了您已经发现的新行问题之外,您很容易遇到其他内容引用不正确的问题。

您应该考虑使用csv 库在python 中生成CSV。这将在写入之前正确处理引用和转义值。

documentation 中有一节介绍使用 Django 输出 CSV。

【讨论】:

    猜你喜欢
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多