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



如果我有这样的结构:

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

我知道如何访问Jinja2模板中的"价值":

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

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

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

这样会导致未定义"some"的错误。。。

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

那个么,我怎样才能从Jinja2模板中访问最后一种情况下的"value"呢?

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

在您的情况下,没有定义任何称为some的内容,并且由于somekey1之间有一个.,因此无法将其解析为任何变量。

另一件事是,我强烈建议您使用_而不是.作为some.key1来避免这个问题,如果不是因为其他原因造成不便的话。

最新更新