You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Jinja2中按对象子属性排序?嵌套字典列表排序咨询

当然可行!

Jinja2的sort过滤器完全支持针对这种嵌套字典列表的排序需求,你只需要通过attribute参数指定嵌套路径即可,非常直观。

具体写法示例

假设你的列表是l = [{ 'a': [ { 'b': 4} ] }, { 'a': [ { 'b': 3} ] }],在Jinja2模板里可以这么写:

{% for item in l | sort(attribute='a.0.b') %}
    {{ item }}
{% endfor %}

原理说明

这里的a.0.b对应你要访问的嵌套路径:

  • a:访问字典中的'a'键
  • 0:访问列表a的第一个元素(对应Python里的[0])
  • b:访问该子字典中的'b'键

Jinja2会自动解析这个点分隔的路径,提取每个元素的a[0]['b']值作为排序依据,最终会按从小到大的顺序输出:

{'a': [{'b': 3}]}
{'a': [{'b': 4}]}

如果需要倒序排序,只需要加上reverse=True参数:

{% for item in l | sort(attribute='a.0.b', reverse=True) %}
    {{ item }}
{% endfor %}

内容的提问来源于stack exchange,提问作者heapOverflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:53:55