循环遍历嵌套字典(Jinja2、Flask)

Looping through a nested dictionary (Jinja2, Flask)

我花了太多时间试图解决这个问题。我有如下字典:

{'asset_1': {'scenario_1':10%, 'scenario_2':-20%}, 'asset_2': {'scenario_1':-11%, 'scenario_2':30%}, 'asset_3': {'scenario_1':15%, 'scenario_2':22%}, 'asset_4': {'scenario_1':-13%, 'scenario_2':30%}}

我现在需要做的是遍历每个资产,然后遍历每个场景并在 table 中填写。但是我无法在最里面访问外循环的资产名称。但是,我可以通过 {% set asset_loop = loop %} 访问索引,然后说 {{asset_loop.index}},但这没有帮助,因为我必须在调用 {{asset_loop.index}} 之前知道哪个索引对应于哪个资产(所以我创建了一个字典,如下所示:{0: {'scenario_1':...}, 1: {'scenario_1':,...},..},但我不能保证字典中的顺序!

这就是我的 atm,它显然不起作用,但显示了我想要实现的目标:

{% for asset in (raw_results["risk_scenarios"].keys() | list) %}
     {% set asset_loop = loop %}
     <tr>
         <th>{{asset}}</th>
         <td>weight</td>

         {% for scenario in raw_results["risk_scenarios"][{{asset}}] %}
             <td>{{raw_results["risk_scenarios"][{{asset}}][{{scenario}}]}}</td>
         {% endfor %}
     </tr>
{% endfor %}

您不必在标记内使用 Jinja 模板语法。 尝试使用 asset 作为普通变量: {% for scenario in raw_results["risk_scenarios"][asset] %}

scenario

也一样