访问 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!

是否可以使用 访问数字键,因为可以使用数字键声明 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只是一个名字,你可以随便起。