2015-11-24 45 views
1

數字鍵此代碼不起作用:訪問在Jinja2的

#!/usr/bin/python 
from jinja2 import Template 
t = Template("Hello {{ 42.baz }}!") 
print t.render({42:{'baz':'World'}}) 

它顯示Hello !,而不是Hello World!

是否有可能與訪問數字鍵是可以申報帶數字鍵的dict

注意{'42':{'baz':'World'}}是不是一個解決辦法

+0

我不明白,在這種情況下'x'將會是未定義的,並且這個想法不是定義一個'x' – nowox

回答

3

數字和字符串比較結果爲literals,你不能強迫神社對待她們的,因爲如何在神社的name patterns任務變量名。所以{{ 42 }}意味着42而不是名爲42的變量。

最簡單的解決辦法是做這樣的:

from jinja2 import Template 
t = Template("Hello {{ vars[42].baz }}!") 
print t.render(vars={42:{'baz':'World'}}) 

vars只是一個名字,它可以是任何你想要的。