gpt4 book ai didi

python - Jinja2 中是否可以根据子属性对对象列表进行排序?

转载 作者:行者123 更新时间:2023-12-01 02:03:09 27 4
gpt4 key购买 nike

就我而言,我有一个字典列表,其中包含其他几个字典列表。

l = [{
'a': [
{ 'b': 4}
]
}, {
'a': [
{ 'b': 3}
]
}]

从技术上讲,我想做的是使用 jinja2 的排序过滤器使用路径 ['a'][0]['b'] 进行排序。

有可能吗?

最佳答案

您可以编写自定义模板过滤器。

http://jinja.pocoo.org/docs/dev/api/#custom-filters

这是一个粗略的解决方案(不支持反向、区分大小写等):

应用程序中的某处:

def deep_sort(value, attribute, subattribute):
return sorted(value, key=lambda element: element[attribute][0][subattribute])

environment.filters['deep_sort'] = deep_sort

在你的模板中:

        {% for value in l|deep_sort('a', 'b') %}
{{value['a'][0]['b']}}
{% endfor %}

关于python - Jinja2 中是否可以根据子属性对对象列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49380155/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com