Python 金贾名单问题
我在Jinja遇到了一个奇怪的问题,我有一个列表Python 金贾名单问题,python,dictionary,jinja2,Python,Dictionary,Jinja2,我在Jinja遇到了一个奇怪的问题,我有一个列表端点,其中包含每个端点的字典。在每个字典中,都有一个键标记,它是一个列表。标记中的每个项本身就是一个字典,其中键值给出标记的标签端点可能具有类似的标记 端点对象的示例抽象表示可以是: [ {"tags":[{"value":"car"},{"value":"place"}]} , {"tags":[{"value":"van"},{"value":"place"}]} ] 我想要的是在一个div中简单地显示唯一的标记。这很简单,保留所有显示标记的
端点
,其中包含每个端点
的字典。在每个字典中,都有一个键标记
,它是一个列表。标记
中的每个项本身就是一个字典,其中键值
给出标记的标签<代码>端点可能具有类似的标记
端点
对象的示例抽象表示可以是:
[ {"tags":[{"value":"car"},{"value":"place"}]} , {"tags":[{"value":"van"},{"value":"place"}]} ]
我想要的是在一个div中简单地显示唯一的标记。这很简单,保留所有显示标记的列表,在获得标记时,检查它是否已经在列表中,如果没有,则显示它并将其添加到列表中。奇怪的是,它不起作用
代码为:
{% set tagValues = [] %}
{% for endpoint in endpoints %}
{% for tag in endpoint["tags"]%}
{% set tagValue = tag["tag"]["value"] %}
{% if tagValue not in tagValues %}
{% set tagValues = tagValues + [tagValue] %}
<span >{{ tagValue }}</span></a>
{% endif %}
{% endfor %}
{% endfor %}
代码有问题吗?我的jinja知识有限,但通过向输出中添加
tagValues
,似乎在每次外循环迭代后都会重置。我想这和望远镜有关,但我不知道
我的建议是在传递给jinja之前,用常规python预处理
端点
我的jinja知识有限,但是通过向输出中添加标记值
,它似乎在外部循环的每次迭代后都会重置。我想这和望远镜有关,但我不知道
我的建议是在传递给jinja之前,用常规python预先处理
端点
,我建议在视图中创建一个不同的标记列表。e、 g
distinctTags = list(set([tag for endpoint in endpoints for tag in endpoint]))
并将其传递给模板
{% for tag in distinctTags %}
<span >{{ tagValue }}</span></a>
{% endfor %}
{%for distinctTags%中的标记]
{{tagValue}}
{%endfor%}
这样做的好处是,独特的标记代码可以重用,而且代码的过程性也较低。我建议在您的视图中创建一个独特的标记列表。e、 g
distinctTags = list(set([tag for endpoint in endpoints for tag in endpoint]))
并将其传递给模板
{% for tag in distinctTags %}
<span >{{ tagValue }}</span></a>
{% endfor %}
{%for distinctTags%中的标记]
{{tagValue}}
{%endfor%}
这样做的优点是,独特的标记代码可重用,且代码程序性较低。是的,这就是发生的情况,它正在重置标记值。这就是发生的情况,它正在重置标记值