2016-03-03 50 views
0

我有这样遍历他们时如何在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 % } 

但是这不起作用。有什么建议么。

回答

1

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

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

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