Python 在字典jinja中访问字典

Python 在字典jinja中访问字典,python,html,jinja2,Python,Html,Jinja2,我有一个叫做数据的字典列表。 对于数据中的每个_存档,我要访问每个_存档['key1']['key2'] 第一个键是常数:单位,但第二个键取决于循环 我已经尝试过:{{archive['units'][{{{item['param']}}}]} 其中item['param']item是循环中的另一个迭代器,item['param']是第二个键。请参见下面的格式!该结构将非常类似于在Python中循环使用字典的方式,但是对于您不想显示的每个语句,使用jinja{%},并围绕每个要显示的表达式使用{

我有一个叫做数据的字典列表。 对于数据中的每个_存档,我要访问每个_存档['key1']['key2']

第一个键是常数:单位,但第二个键取决于循环

我已经尝试过:{{archive['units'][{{{item['param']}}}]}


其中item['param']item是循环中的另一个迭代器,item['param']是第二个键。

请参见下面的格式!该结构将非常类似于在Python中循环使用字典的方式,但是对于您不想显示的每个语句,使用jinja{%},并围绕每个要显示的表达式使用{{}

取自


据我所知,您有一个包含一些嵌套字典的列表;如果是这种情况,并且您的数据如下所示:

data = [{'foo': {'bar1': 'buzz1', 'bar2': 'buzz2'}}, {'foo': {'bar3': 'buzz3', 'bar4': 'buzz4'}}]
如果您使用此Jinja2:

    {% for every_archive in data %} 
        {% for key1, archive1 in every_archive.items() %}
          {% for key2, value2 in archive1.items() %}
            <p>{{ key1 }} - {{ key2 }} - {{ value2 }}</p>
          {% endfor %}
        {% endfor %}
    {% endfor %}
此外,您将从中获得相同的输出

<p>{{ key1 }} - {{ key2 }} - {{ archive1[key2] }}</p>

是的,这很好,但我的key2不是字符串,是item['param']的值。我不确定,我理解您的数据结构。你能提供一个例子吗?所以我在HTML中收到变量数据,其中包含一个字典项,我还收到一个字典项的详细信息。然后我有{%for elem in data['item']%}{{details['units'][elem['param']]}

。问题是elem['param']在for中,我需要使用它作为详细信息的第二个键。
    {% for every_archive in data %} 
        {% for key1, archive1 in every_archive.items() %}
          {% for key2, value2 in archive1.items() %}
            <p>{{ key1 }} - {{ key2 }} - {{ value2 }}</p>
          {% endfor %}
        {% endfor %}
    {% endfor %}
foo - bar1 - buzz1

foo - bar2 - buzz2

foo - bar3 - buzz3

foo - bar4 - buzz4
<p>{{ key1 }} - {{ key2 }} - {{ archive1[key2] }}</p>