首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Django模板中迭代字典数组

在Django模板中迭代字典数组
EN

Stack Overflow用户
提问于 2014-07-29 01:18:25
回答 2查看 2.1K关注 0票数 0

如何在Django模板中遍历字典数组?

代码语言:javascript
运行
复制
data = [{'name' : 'Bob', 'age' : 20}, {'name': 'Sally', 'age' : 20}]

由于数组的原因,文档的代码出现了问题

代码语言:javascript
运行
复制
{% for key, value in data.items %}
    {{ key }}: {{ value }}
{% endfor %}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-29 01:26:44

items不工作,因为您在列表中调用它,但您也不需要这样做。由于字典中有相同的键,只需遍历列表并直接访问字典:

代码语言:javascript
运行
复制
{% for item in foo %}
   {{ item.name }}
   {{ item.age }}
{% endfor %}

关于模板变量的文档解释了当涉及字典时.是如何/为什么工作的:

从技术上讲,当模板系统遇到一个点时,它会按以下顺序尝试以下查找:

  • 字典查找
  • 属性查找
  • 方法调用
  • 列表索引查找
票数 2
EN

Stack Overflow用户

发布于 2014-07-29 01:26:19

看起来,您的循环是在列表上迭代,而不是对dict进行迭代。您可以尝试一个嵌套循环。

代码语言:javascript
运行
复制
{% for details in data %}
    {% for key, value in details.items %}
        {{ key }}: {{ value }}
    {% endfor %}
{% endfor %}

因为看起来你的字典有相同的键,所以你也可以这样做:

代码语言:javascript
运行
复制
{% for details in data %}
    name: {{ details.name }}
    age: {{ details.age }}
{ % endfor %}

如果您有更大的dicts或动态键,那么您可能最好使用嵌套循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25006831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档