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

vla*_*mir 3 python jinja2

如果我有这样的结构:

parameters = {'key1': {'nested_key2': 'value'}}
Run Code Online (Sandbox Code Playgroud)

我知道如何访问 Jinja2 模板中的“值”:

template data
{{ key1.nested_key2 }}
more template data
Run Code Online (Sandbox Code Playgroud)

我可以在 Jinja2 模板中访问以下结构中定义的“值”吗?

parameters = {'some.key1': {'another.nested_key2': 'value'}}
Run Code Online (Sandbox Code Playgroud)

这种方式会导致“某些”未定义的错误......

template data
{{ some.key1.another.nested_key2 }}
more template data
Run Code Online (Sandbox Code Playgroud)

那么我如何从 Jinja2 模板访问最后一种情况的“值”?

ada*_*rsh 5

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

在你的情况下,没有什么叫做定义的,因为之间some有一个,它不能将其解析为任何变量。.somekey1

另一件事是,如果不造成不便,我强烈建议您使用_而不是.for来避免此问题。some.key1