在Jinja2模板中无法获得字典的键值

时间:2017-11-21 12:39:18

标签: python jinja2

我们说我有两个字典列表如下:

FeeDict = [{u'100': u'Booking Fee'}, {u'101': u'Penalty Fee'}]

ChargeObj = ([{'ChargeAmount': 50.0, 'KeyCharge': u'101'}, {'ChargeAmount': 150.0, 'KeyCharge': u'100'}], [{'PromotionAmount': 0.0, 'KeyCharge': u'101'}, {'PromotionAmount': 0.0, 'KeyCharge': u'100'}], [{'TotalCharge': 200.0, 'TotalPromotion': 0.0}])

我试图获取两个变量的关键值并按如下方式排列:

预订费:150.0

罚款:50.0

所以我在jinja2尝试了我的代码:

<table>
    {% for row in ChargeObj %}
        {% set key = row[0]['KeyCharge']|string %}  <!-- 100 or 101 -->
        {% set desc = FeeDict[0][key] %}            <!-- Booking Fee or Penalty Fee -->
        {% set amt = row[0]['ChargeAmount'] %}
        <tr>
            <td>{{desc}}</td>
            <td>{{amt}}</td>
        </tr>
    {% endfor %}
</table>

问题是FeeDict[0][key]没有像我预期的那样返回一个值。但是,如果我将固定key分配给FeeDict[0]['100'],但为什么key来自FeeDict,它会返回值?

我认为可能key需要string而不是number所以我尝试了row[0]['KeyCharge']|string但仍然没有帮助。

这有什么不对?我该如何解决? 感谢

0 个答案:

没有答案