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

时间:2016-04-13 08:20:44

标签: 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. 然后获取所有标记的列表,例如
  3. 期望的输出:

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

    请帮帮我

1 个答案:

答案 0 :(得分:1)

您可以使用mapsum过滤器

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

或仅与sum(对于Jinja> = 2.6)

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