循环遍历嵌套字典(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
也一样
我花了太多时间试图解决这个问题。我有如下字典:
{'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