Python 无法使用“获取新行”\";使用jinja2从模板到实际输出
我正在尝试使用Python 无法使用“获取新行”\";使用jinja2从模板到实际输出,python,python-3.x,jinja2,Python,Python 3.x,Jinja2,我正在尝试使用模板生成带有jinja2模块的xml文件。不知何故,我无法使用\n从模板到实际输出获得新行 这是xml-template.xml: <module> <group name="abc"> <subinst entity="x" id="0" /> {% for n in range(count) %}<subinst entity="y" id="{{n}}" />\n {% endfor
模板
生成带有jinja2
模块的xml文件。不知何故,我无法使用\n
从模板到实际输出获得新行
这是xml-template.xml:
<module>
<group name="abc">
<subinst entity="x" id="0" />
{% for n in range(count) %}<subinst entity="y" id="{{n}}" />\n {% endfor %}
</group>
</module>
当我运行脚本时,我得到的是\n
原样,而不是输出中的新行,如下所示
这是我的预期输出:
<module>
<group name="abc">
<subinst entity="x" id="0" />
<subinst entity="y" id="0" />
<subinst entity="y" id="1" />
<subinst entity="y" id="2" />
</group>
</module>
我试过使用
(这对于HTML
来说是正确的),试过使用keep\u trailing\u newline=true
,但似乎没有任何帮助
有人能帮我解决这个问题吗?+1这是一个写得很好的问题,有示例代码和预期输出
我使用此模板实现了这一点(确保此文件中的制表符和空格一致):
例如:
In [84]: print(output)
<module>
<group name="abc">
<subinst entity="x" id="0" />
<subinst entity="y" id="0" />
<subinst entity="y" id="1" />
<subinst entity="y" id="2" />
</group>
</module>
[84]中的:打印(输出)
<module>
<group name="abc">
<subinst entity="x" id="0" />
{% for n in range(count) %}
<subinst entity="y" id="{{n}}" />
{% endfor %}
</group>
</module>
env = Environment(loader=file_loader,lstrip_blocks=True,trim_blocks=True)
In [84]: print(output)
<module>
<group name="abc">
<subinst entity="x" id="0" />
<subinst entity="y" id="0" />
<subinst entity="y" id="1" />
<subinst entity="y" id="2" />
</group>
</module>