jinja2 - 如何使用 jinja2 过滤器过滤掉空列表?

标签 jinja2

假设我有 yml 格式的数据:

 testdata:
     - name: others
       marks: 
         - subject: physics
           marks: 60

     - name: midterm
       marks: []

     - name: final
       marks:
         - subject: math
           mark: 70
         - subject: chemistry
           mark: 80

我需要的是

  1. 拒绝空列表[]
  2. 然后获取所有标记的列表,例如

期望的输出:

[ 
 { subject: physics
   marks: 60
 },
 { subject: math
   mark: 70
 },
 { subject: chemistry
   mark: 80
  }
]

请帮帮我

最佳答案

您可以使用mapsum过滤器

{{ testdata|map(attribute='marks')|sum(start=[]) }}

或仅使用sum(对于 Jinja >= 2.6)

{{ testdata|sum(attribute='marks', start=[]) }}

关于jinja2 - 如何使用 jinja2 过滤器过滤掉空列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36592554/

相关文章:

Python:如何在 jinja2 中正确循环此编辑

python - 使用 get_template jinja2 生成动态 XML 模板

vim gg=G html 和 jinja2

python - 遍历 jinja2 中的 pandas 数据框

python - Jinja2 忽略未找到对象的 UndefinedErrors

python - Jinja 模板中的嵌套打印语句

python - 将列表参数传递给 Jinja2 扩展中的调用节点

python - 将 None 对象属性打印为空字符串

python - 如何将 jinja2 变量插入到 html 元素的属性中?

jinja2 - 有没有办法删除 jinja2 for 循环中的空行?