python - jinja2:按定义的键顺序对字典进行排序?

标签 python html django jinja2

假设我想像这样显示一些数据:

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

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

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

我如何告诉 Jinja2 始终以 b a c 顺序显示我的数据?如果我不确定元素 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 测试处理。

关于python - jinja2:按定义的键顺序对字典进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30488763/

相关文章:

html - 如何在 CSS 中创建带边框的倾斜标签?

html - 您可以制作多宽多长的网页。有限制吗?

html - 更改小屏幕上文本和图像的顺序

python - Django REST Framework 验证 slug 字段

python - 按距离对结果进行排序,并获取它们与查询点之间的距离

python - Scrapy,从页面解析项目数据,然后按照链接获取其他项目数据

python - 使用Pandas如何利用列数据进行大数据的统计分析

python - python获取url的内容

python - 如何在 Django 中按类别对主题进行排序?

Python itertools组合定制