获取jinja2临时工列表的长度

2024-04-25 06:17:50 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在jinja2模板中获取列表中的元素数?

例如,在Python中:

print(template.render(products=[???]))

在jinja2

<span>You have {{what goes here?}} products</span>

Tags: you模板元素jinja2列表herehavetemplate
3条回答
<span>You have {{products|length}} products</span>

您还可以在以下表达式中使用此语法

{% if products|length > 1 %}

jinja2的内置过滤器被记录为here;特别是,正如您已经发现的,^{}(及其同义词count)被记录为:

Return the number of items of a sequence or mapping.

所以,正如您所发现的,模板中的{{products|count}}(或等价的{{products|length}})将给出“产品数量”(“列表长度”)

亚历克斯的评论看起来不错,但我仍然对使用范围感到困惑。 当我在一个范围内使用长度的for条件下工作时,下面的代码对我有效。

{% for i in range(0,(nums['list_users_response']['list_users_result']['users'])| length) %}
<li>    {{ nums['list_users_response']['list_users_result']['users'][i]['user_name'] }} </li>
{% endfor %}

我遇到了长度为None的问题,这会导致内部服务器错误:type Error:“None type”类型的对象没有len()

如果object为None,则我的解决方法只是显示0,并计算其他类型的长度,如我的示例中的list:

{{'0' if linked_contacts == None else linked_contacts|length}}

相关问题 更多 >