无法在Jinja2 Temp中获取字典的键值

2024-10-01 15:43:01 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个字典列表,如下所示:

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]没有像我上面预期的那样返回值。但是,如果我将fixed key赋值给它,比如FeeDict[0]['100'],那么它将返回值,但是为什么不从FeeDict中{}?在

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

怎么了?我怎样才能修好它? 谢谢


Tags: orkeystringtabletdrowsetfee

热门问题