【发布时间】:2020-08-07 03:25:37
【问题描述】:
我承认这个问题很模糊,但这就是我得到的error。
我正在尝试使用名为python-docx-template 的python-docx 库的派生类创建一个word 文档模板,该库使用Jinja2。
我正在做的是使用 Python 生成我需要的数据,然后将其发送到我正在构建的 docx 模板,以便文档以我想要的格式输出数据。
我的 Jinja2 模板如下所示:
{% if EXCHANGE_RATE %}
{%- for stringData in EXCHANGE_RATE %}
{{stringData}}
{%- endfor %}
{%- endif %}
请注意,模板代码位于表格单元格中。整个数据应该在单元格本身内生成(即不被行分隔)。
这里应该发生的是模板检查EXCHANGE_RATE列表变量的存在(因为我可能会或可能不会根据情况返回此数据)然后循环数据,导致如下所示:
Exchange Rate:-
1 EUR= 1.0 USD
1 EUR= 1.0 GBP
由于某种原因,if endif 代码似乎添加了一些我不想要的额外行距(没有它,输出正是我想要的),因此在各个部分使用了-。
我的问题在于最后一行:{%- endif %}。
如果我在后面添加一个额外的 - (就像这样 {%- endif -%} ),每当我生成并尝试打开文件时,它都会以某种方式导致 error ,但我不确定为什么。
我在其他地方有一个类似的if endif 嵌套for 循环,它会导致类似的问题,也在它自己的最终{%- endif %} 行中。
有什么建议吗? 请注意,我对 Jinja2 还比较陌生。
【问题讨论】:
标签: python python-3.x ms-word jinja2 python-docx