6

我真的很喜欢 Django/Jinja 格式的格式。我理解希望将逻辑和表示分开,但是当报告不断变化的数据量时,if 语句和 for 循环是理想的。

我正在创建一个“报告”类,它以更详细的方式返回有关函数的输入和输出的一些信息,我想要一个字符串,如:

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 是我最好的选择,我将非常感谢一个如何在面向 Web 的环境之外使用它的示例。文档有点难以浏览。

4

1 回答 1

3

从 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库中的某些内容进行漂亮的打印。

于 2013-06-30T16:41:04.613 回答