如何在jinja2中呈现对象(或字典?)的名称

时间:2017-09-20 23:06:02

标签: python jinja2

使用python和jinja2,我想打印对象的键和值(如果存在)。它似乎应该很简单,但我无法得到我想要的输出: 对于一个对象 {“name1”:“value1”,“name2”:“value2”}我想打印

name1 = value1
name2 = value2

我可以使用jinja 2参数宏完成我想要的任务。

macro_2arg("name1", name1)

我想通过提供名称对象来实现这一点。

macro_1arg(name1)

我尝试了一些不起作用的东西:

from __future__ import print_function
from jinja2 import Template

tmpl_str = """
{%- macro macro_2arg(param_name, param) %}
    {%-if param is defined -%}
    {{param_name}} = {{param}}
    {%- endif %}
{%- endmacro %}
{%- macro macro_1arg(param) %}
    {%-if param is defined -%}
    {{param.name}} = {{param}}
    {%- endif %}
{%- endmacro %}

{{parameter_2arg("name1", name1)}}
{{parameter_2arg("name2", name2)}}
{{parameter_1arg(name1)}}
{{parameter_1arg(name2)}}
"""

template = Template(tmpl_str)

rendered = template.render({"name1" : "value1", "name2" : "value2", "name3":"value3"})
print (rendered)

打印:

name1 = value1
name2 = value2
 = value1
 = value2

获取传递值的“name”属性的正确方法是什么?

提前致谢。

0 个答案:

没有答案