使用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”属性的正确方法是什么?
提前致谢。