Jinja中如何使用selectattr筛选字段值包含指定子串的列表元素?
正确实现方式
使用Jinja内置的search测试即可满足需求,对应表达式如下:
{{ foo|selectattr("name", "search", "42")|list }}
selectattr传入search测试的逻辑是,对每个元素的name字段做校验,判断字段值是否包含给定的子串(search默认基于正则匹配,普通字符串直接输入即可完成子串校验),完全等价你给出的Python列表推导式逻辑。
注意事项
如果需要匹配的子串包含正则特殊字符(如.、*、+等),需要对特殊字符加反斜杠转义,避免匹配逻辑不符合预期。
内容的提问来源于stack exchange,提问作者George Shuklin
相关产品推荐
相关产品推荐

