gpt4 book ai didi

python - 迭代 jinja 数组

转载 作者:行者123 更新时间:2023-12-01 04:20:21 24 4
gpt4 key购买 nike

我有以下 jinja 数组:

{'e34': ['120'], 'e24': ['50']}

我想查找一个单词是否包含 e2,并将其传递给另一个函数。

我做了以下事情:

{% set result = 'default' %}
{% for item, value in jinjaarray.items() %}
{% if 'e2' in item %}
result = item
{% endif %}
{% endfor %}

但是失败了,并且没有进入循环。

我该怎么做?

最佳答案

而是使用 .items()与 Python3 一样,jinja2 使用 Python2 风格的 .iteritems()docs 中所述.

此外,您需要assign使用 set 将变量 result 从字典中添加到 item:

from jinja2 import Template

d = {'e34': ['120'], 'e24': ['50']}

s = """{% set result = 'default' %}
{% for item, value in test_dict.items() %}
{% if 'e2' in item %}
{% set result = item %}
{{ result }}
{% endif %}
{% endfor %}"""

template = Template(s)
print(template.render(test_dict=d))

由于我在系统上使用 Python3,因此我必须调用 .items()。根据您的版本,您可能会调用 .iteritems()

由于我的系统上没有设置 jinja2 沙箱环境,所以我不得不编写一个快速而肮脏的代码片段,如上所示。这将提供以下输出:

'\n\n   \n      \n      e24\n   \n\n   \n'

从光学上来说,这并不是那么好,但它打印出所需的 e24 值。

关于python - 迭代 jinja 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815013/

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