与python字典和Jinja迭代通过它们的问题

我有一个Python字典,看起来像这样。 {0: {'record': u'running fast', 'moreInfo': u'test', 'year': u'2017', 'name': u'Jose la computadora', 'activity': u'Cross Country'}, 1: {'record': u'test', 'moreInfo': u'ttt', 'year': u'2000', 'name': u'Lewdog', 'activity': u'Cross Country'}}python字典" title="python字典">python字典和Jinja迭代通过它们的问题

我将它传递给带有Flask的Jinja模板。字典设置为变量databaseQuery并传递给Jinja。 我的忍者代码看起来像这样,但没有显示在页面上。 如果我在页面上打印databaseQuery,我会得到整个字典,如果我打印测试,我只会得到0 1。 我想弄清楚如何遍历我的字典,并显示页面上的名称的每个值。

{% for test in databaseQuery %} 

{{test["name"]}}

{% endfor %}

我看了这list of dictionary in jinja template,但没有任何运气。

谢谢!

回答:

那么你只是通过databaseQuery的钥匙迭代。

Jinja抑制一些错误,这就是为什么它不会为你爆炸。

这不是Jinja问题,而是python问题;如果你在没有指定键,值或项的情况下迭代字典,它只会遍历键,这对你来说是0和1,它们只是整数。

如果您要访问只是值,你可以做

{% for val in databaseQuery.values() %} 

{{ val['name'] }}

{% endfor %}

应该得到你想要的东西。值得注意的是,除非那些整数(0和1)将被用于有意义的事情,否则你可以放弃字典列表并循环遍历,就像你做的那样,那将起作用。

回答:

迭代dict只产生密钥。你可以这样做:

{% for k in databaseQuery %} 

{{ databaseQuery[k]['name'] }}

{% endfor %}

或者:

{% for k, v in databaseQuery.items() %} 

{{ v['name'] }}

{% endfor %}

回答:

喜;

python迭代字典给你的关键。

a = {1:'test'} 

for k in a

会给你1

尝试a[key]访问值

编辑:

{% for test in databaseQuery %}   

{{databaseQuery[test]}}

{% endfor %}

回答:

谢谢大家!我明白了。

以上是 与python字典和Jinja迭代通过它们的问题 的全部内容, 来源链接: utcz.com/qa/266043.html

回到顶部