【问题标题】:Looping through a nested dictionary (Jinja2, Flask) [duplicate]循环遍历嵌套字典(Jinja2,Flask)[重复]
【发布时间】:2019-01-16 21:54:39
【问题描述】:

我花了太多时间试图弄清楚这一点。我有一本像下面这样的字典:

{'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%}}

我现在需要做的是遍历每个资产,然后遍历每个场景并将其填写在表格中。但是我无法在最里面访问外部循环的资产名称。但是,我可以通过{% 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 %}

【问题讨论】:

    标签: python flask jinja2 template-engine


    【解决方案1】:

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

    scenario 也是如此

    【讨论】:

      猜你喜欢
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 2020-03-04
      • 2020-08-03
      • 2014-05-11
      相关资源
      最近更新 更多