gpt4 book ai didi

python - 在 Jinja2 中显示嵌套字典

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:27 27 4
gpt4 key购买 nike

我有以下 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 library function .

问题是模板只显示 [1, 2, 3] 而不是预期的 [1, 2, 3][4, 5, 6] .

很明显,我误解了 Jinja 中递归的工作原理;有什么提示吗?

最佳答案

为什么要用'double for'来控制呢?我正在尝试按如下方式使用“单一 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]}}})

希望对我的英语不好的你有用:)

关于python - 在 Jinja2 中显示嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19931448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com