我花了太多时间试图解决这个问题。我有一本类似以下的字典:
{'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 %}
答案 0 :(得分:1)
您不必在标记内使用Jinja模板语法。
尝试将asset
用作普通变量:
{% for scenario in raw_results["risk_scenarios"][asset] %}
scenario