如何在 jinja2 中的字典中选择一些键,当迭代它们时



我有这样的字典

[ { 'a' : "Aa1",
    'b' : "Bb1",
    'c' : "Cc1"
  } ,
  { 'a' : "Aa2",
    'b' : "Bb2",
    'c' : "Cc2"
    'd' :"Dd2"
 } ]

我想在循环遍历这个字典数组时拒绝一些键。所以我想要这样的结果

拒绝键"A"和"B"

c = Cc1
c = Cc2
d = Dd2

我怎样才能做到这一点

我试过这样的事情

{ % for dict in dictionaries % }
     {%- for key,value in dict.items()%}
        {%- if key|rejectattr("a", "b") %}
          {{key}} = {{value }}
        {%- endif%}    
    {% endfor %}
{% endfor % }

但是,这不起作用。任何建议。

你用rejectattr过滤器实际上说的是"key.a的值不能'b'",这不是你想做的。由于您直接使用密钥,因此它只是一个str,并且没有任何此类属性。

也许尝试使用 equalto 作为测试,reject作为主过滤器:

{% if key|reject('equalto', 'a')|reject('equalto', 'b') %}

最新更新