python – jinja2:按定义的键顺序排序dict?

所以我想说我想显示一些这样的数据:

• b is foo
• a is bar
• c is baz

…但我的数据集看起来像这样(或任何其他顺序,因为JSON不关心):

{
"a": "bar",
"b": "foo",
"c": "baz"
}

如何告诉Jinja2按键顺序显示我的数据?如果我不确定元素c是否总是存在,该怎么办?

我认为这将是这样的,无济于事:

<ul>
{% for key, value in my_dict.items()|dictsort(by=['b', 'a']) %}
    <li>{{ key }} is {{ value }}</li>
{% endfor %}
</ul>

最佳答案 您可以遍历硬编码的密钥列表:

<ul>
{% for key in ('b', 'a', 'c') %}
    {% if key in my_dict %}
    <li>{{ key }} is {{ my_dict[key] }}</li>
    {% endif %}
{% endfor %}
</ul>

不存在的密钥由if测试处理.

点赞