如何使用包含“。”的键访问字典参数。 (点)在Jinja2?

时间:2014-11-05 20:41:57

标签: python jinja2

如果我有这样的结构:

parameters = {'key1': {'nested_key2': 'value'}}

我知道如何获取'价值'在Jinja2模板中:

template data
{{ key1.nested_key2 }}
more template data

我可以在Jinja2模板中访问'值'在以下结构中定义?

parameters = {'some.key1': {'another.nested_key2': 'value'}}

这种方式导致某些人的错误。没有定义......

template data
{{ some.key1.another.nested_key2 }}
more template data

所以我如何才能获得'价值'在最后一个案例中来自Jinja2模板?

1 个答案:

答案 0 :(得分:4)

您仍然可以使用jinja2中的字典表示法访问它,因此您可以将其用作parameters['some.key1'].another.nested_key2

在您的情况下,没有定义任何名为some的内容,因为在.some之间存在key1,它无法将其解析为任何变量

另一件事是,我强烈建议您使用_代替. some.key1以避免此问题,否则不会造成任何不便。< / p>