我有变量fruits
:
fruits = {
"apple": {},
"banana": {
"params": {
"color": "yellow",
"size" 100
}
}
}
..还有 jinja2 模板 my_stuff.j2
:
In my bag I have:
{% for k,v in fruits.iteritems() %}
- {{ k }}
{% endfor %}
当我渲染它时,我得到:
In my bag I have:
- apple
- banana
问题:我如何实现这一目标:
In my bag I have:
- apple
- banana color="yellow" size="100"
最佳答案
在Python中你可以这样做:
for key,val in fruits.iteritems():
if val.get('params'):
print key + ' ' + str(' '.join('{}={}'.format(param_key, param_val) for param_key, param_val in val['params'].items()))
else:
print key
在Jinja
中你可以做这样的事情:
{%for key,val in something.iteritems()%}
{%if val.get('params')%}
- {{key}} {%for item in val['params'].items()%} {{item | join ('=') }} {%endfor%}
{%else%}
- {{key}}
{%endif%}
{%endfor%}
关于python - 如何在 jinja2 中打印一行字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558092/