python - Jinja 2 中列表的总和元素

标签 python jinja2

我在 Jinja2 中有一个列表,它本身包含字典。有点像

items = [{'name':'name1', 'points':5}, {'name':'name2', 'points':7}, 
 {'name':'name3', 'points':2}, {'name':'name4', 'points':11}]

我需要的是获取所有点数的总和,并在以后的某个地方打印出来。

目前我得到的是:

{% set points = 0 -%}
{% for single_item in items -%}
    {% set points = points + single_item["points"] -%}
    {{points}}
{% endfor %}
{{ points }}

结果是:5 12 14 25 0

有什么方法可以让循环外的 points 具有值 25(循环中的最后一个值)?

最佳答案

Jinja2 包含一个 sum 过滤器,它会为你做这件事:

{{ items | sum(attribute='points') }}

请参阅此处的文档:https://jinja.palletsprojects.com/templates/#jinja-filters.sum

关于python - Jinja 2 中列表的总和元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25525101/

相关文章:

ansible:将列表中的一个元素过滤为字符串

python - 计算表中的条目数,然后在 html 中使用 jinja 显示

emacs - Flask/Jinja2 是否有在调试期间保存渲染模板的规定?

Python循环mysql语句

python - 如何比较多个键值对的两个字典列表?

python - 有什么方法可以过滤 Nose 中的覆盖率报告吗?

python - PyQt 从用户获取日期

python - 凯拉斯, tensorflow : "TypeError: Cannot interpret feed_dict key as Tensor"

javascript - 从用户界面动态添加新的 WTForms FieldList 条目

python - 为什么显示 BadrequestKeyError?