当没有任何元素验证条件时,如何绕过带有“等于”过滤器错误的selectattr?

时间:2019-08-05 10:49:49

标签: jinja2

我正在遍历一个对象列表,对于每个对象,我想在array字段中使用key属性等于1(如果有)的元素。我尝试过array | selectattr("key", "equalto", 1) | first,但是当没有任何元素满足条件时,它会失败。我尝试使用带有if条件的defined语句,但是它在first处失败,并且由于selectattr是生成器,所以我无法避免。

总是可以创建自己的first过滤器,但是我正在寻找一种纯jinja2解决方案。

{ 
  "objects": [
    {
      "array": [
        {
          "key": 1
          "value": 234
        },
        {
          "key": 2
          "value": 235
        }
      ]
    },
    {
      "array": [
        {
          "key": 3
          "value": 256
        },
        {
          "key": 2
          "value": 231
        }
      ]
    }
  ]
}

0 个答案:

没有答案