我非常喜欢Django / Jinja格式化。我理解想要将逻辑和表示分开,但if语句和for循环在报告不断变化的数据量时是理想的。
我正在创建一个“Report”类,它以更详细的方式返回有关函数输入和输出的一些信息,我希望有一个类似的字符串:
template="""
INPUTS:
{{% for key,value in inputsdict.items() %}}
{{key}}: {{value}}
{{% endfor #}}
OUTPUTS:
{{% for key,value in outputsdict.items() %}}
{{key}}: {{value}}
{{% endfor #}}
"""
然后我可以调用经典的template.format(**kwargs)
我想知道Jinja是否是我最好的选择,或者python是否具有我应该关注的本地轻量级字符串循环格式化功能。
编辑:此外,如果Jinja是我最好的选择,我真的很感激如何在面向网络的环境之外使用它。文档很难导航。
答案 0 :(得分:1)
从for循环生成数据,然后将它们放入结果中。
无需过度使用格式模板系统。只需将它用于需要它的部分。
inputs = ['%s: %s' % (k, v) for k, v in input_dict.items()]
outputs = ['%s: %s' % (k, v) for k, v in output_dict.items()]
print '\n'.join('INPUTS:', '\n '.join(inputs),
'',
'OUTPUTS:', '\n '.join(outputs))
您可以将inputs
/ outputs
创建步骤作为一项功能,或者使用json库中的内容进行漂亮打印。