我有一个如下所示的列表:
[(u'Element1', u'Description1', u'Status1), (u'newElement2', u'newDescription2', u'newStatus2), (u'nextElement3', u'nextDescription3', u'nextStatus3), (u'anotherElement4', u'anotherDescription4', u'anotherStatus4)]
我有一个ansible playbook,它使用jinja2模板将列表呈现为文本文件。模板文件如下所示:
{% for item in description | batch(3, ' ') %}
{% for el in item %}
{{ el }}
{% endfor %}
{% endfor %}
但是这会使文本文件看起来像这样:
[u'Element1', u'Description1', u'Status1]
[u'newElement2', u'newDescription2', u'newStatus2]
[u'nextElement3', u'nextDescription3', u'nextStatus3]
[u'anotherElement4', u'anotherDescription4', u'anotherStatus4]
我希望报告看起来像这样:
Element1 Description1 Status1
newElement2 nextDescription2 newStatus2
nextElement3 nextDescription3 nextStatus3
anotherElement4 anotherDescription4 anotherDescription4
有没有办法删除unicode字符并以这种方式呈现列表?
答案 0 :(得分:0)
你可以尝试
{% for el in item %}
{% for e in el %}
{{ e }}
{% endfor %}
{% endfor %}
如果您希望能够更改格式
,请使用html表格答案 1 :(得分:0)
例如:
{% for row in description %}
{% for cell in row %}
{{ "%-22s"|format(cell) }}
{%- endfor %}
{% endfor %}
收率:
Element1 Description1 Status1
newElement2 newDescription2 newStatus2
nextElement3 nextDescription3 nextStatus3
anotherElement4 anotherDescription4 anotherStatus4
但要获得动态填充 - 取决于列中元素的最大长度 - 看起来像一个更复杂的任务:{{ "%-22s"|format(cell) }}
可以替换为{{ "{0}".format(cell).ljust(width) }}
width
可以是一个变量,但可能需要另一个循环来收集长度。