Python 烧瓶-jinja2从过滤结果中访问数据
数据: 我试图在jinja2模板中过滤这些数据,并从过滤结果中过滤出值Python 烧瓶-jinja2从过滤结果中访问数据,python,django,flask,jinja2,Python,Django,Flask,Jinja2,数据: 我试图在jinja2模板中过滤这些数据,并从过滤结果中过滤出值 [ { "name": "fixed", "addr": "172.16.1.100", "active": "Yes" }, { "name": "floating", "addr": "10.
[
{
"name": "fixed",
"addr": "172.16.1.100",
"active": "Yes"
},
{
"name": "floating",
"addr": "10.90.80.10",
"active": "No"
}
]
这给了我
{{ data|selectattr("name", "equalto", "floating")}}
我想从这个结果中获得活动状态。
我尝试了{{data | selectattr(“name”、“equalto”、“floating”)| attr(“active”)}
,结果返回为空
正确的方法是什么?在应用jinja过滤器后访问属性“|”
注意:我刚在下面试过,效果很好。问题是当我应用过滤器,然后尝试访问属性时。使用属性方法
{
"name": "floating",
"addr": "10.90.80.10",
"active": "No"
}
如果您也想筛选活动状态,请尝试此操作
This works
{{ data[0]['active'] }}
This doesnt
{{ data|first|attr('active') }}
这就是我从你的问题中了解到的,我不知道你到底想要“主动”过滤器做什么
编辑:
如果您只是想从active获得价值,只需执行以下操作:
{{ data|selectattr("name", "equalto", "floating")|selectattr("active", "equalto", "No")|list }}
addr
属性值后缺少逗号。已更新问题。以上只是样本数据。所以问题不在于数据。这不是我想要的。我想要的是使用键访问值。以pythonic的方式“data.get”(“active”)。当我使用筛选器(在本例中为selectattr equalto)时,我无法使其正常工作。希望对筛选器的结果应用get方法。作为临时解决方案,我使用{%set tempdata=data | selectattr(“name”,“equalto”,“floating”)%}然后{{tempdata['active']}.这行得通。有没有办法让这行的通呢?
{{ (data|selectattr("name", "equalto", "floating")|list)[0]["active"] }}