[英]Displaying nested dictionary in Jinja2
我有以下Jinja2模板:
{% block body %}
{% for key in tree recursive %}
{% set outer_loop = loop %}
{% for subkey in tree[key] %}
{% if subkey == 'R' %}
{{ tree[key][subkey] }}
{% else %}
{{ outer_loop(dict([(subkey, tree[key][subkey])])) }}
{% endif %}
{% endfor %}
{% endfor %}
{% endblock body %}
其中tree
是Python字典,例如:
tree = {"A": {"R": [1, 2, 3], "B": {"R": [4, 5, 6]}}}
dict()
是Python库函数 。
问题在于,模板仅显示[1, 2, 3]
,而不显示[1, 2, 3][4, 5, 6]
。
显然,我对Jinja中的递归工作方式有误解。 有什么提示吗?
您为什么使用“ double for”来控制它? 我正在尝试按以下方式使用“单个”进行编码,看起来还可以:
from jinja2 import Template
template = Template(
"""
{%- for key, value in tree.items() recursive%}
{%-if key != "R"%}
{{loop(value.items())}}
{%- else %}
{{value}}
{%- endif %}
{%- endfor%}
""")
print template.render(tree = {"A": {"R": [1, 2, 3], "B": {"R": [4, 5, 6]}}})
我希望我的英语不好,这对您有用:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.