访问 jinja2 中的数字键
Accessing a numeric key in jinja2
此代码无效:
#!/usr/bin/python
from jinja2 import Template
t = Template("Hello {{ 42.baz }}!")
print t.render({42:{'baz':'World'}})
它显示 Hello !
而不是 Hello World!
是否可以使用 jinja2 访问数字键,因为可以使用数字键声明 dict
?
请注意 {'42':{'baz':'World'}}
不是解决方案
数字和字符串被评估为 literals, and you cannot force Jinja to treat them as variable names because of how the Jinja's name patterns 作品。所以 {{ 42 }}
表示 42
而不是名为 42
.
的变量
最简单的解决方案就是这样做:
from jinja2 import Template
t = Template("Hello {{ vars[42].baz }}!")
print t.render(vars={42:{'baz':'World'}})
vars
只是一个名字,你可以随便起。
此代码无效:
#!/usr/bin/python
from jinja2 import Template
t = Template("Hello {{ 42.baz }}!")
print t.render({42:{'baz':'World'}})
它显示 Hello !
而不是 Hello World!
是否可以使用 jinja2 访问数字键,因为可以使用数字键声明 dict
?
请注意 {'42':{'baz':'World'}}
不是解决方案
数字和字符串被评估为 literals, and you cannot force Jinja to treat them as variable names because of how the Jinja's name patterns 作品。所以 {{ 42 }}
表示 42
而不是名为 42
.
最简单的解决方案就是这样做:
from jinja2 import Template
t = Template("Hello {{ vars[42].baz }}!")
print t.render(vars={42:{'baz':'World'}})
vars
只是一个名字,你可以随便起。