Mako表达式中的字典文字

Hol*_*ter 6 mako

以下引发语法错误,"解析时意外的EOF":

${foo({'bar':'baz'})}
Run Code Online (Sandbox Code Playgroud)

我想这是从内部闭合的大括号.这很好用:

${foo(dict(bar='baz'))}
Run Code Online (Sandbox Code Playgroud)

但是使用字典文字的语法是什么?

Hol*_*ter 6

来自Brian Rue的Mako Templates Google Group:

这是一个长期存在的漏洞; 只需使用dict().如果您需要一个包含非字符串键的字典,请将元组列表转换为字典.例如,而不是这样:

${foo({1: 'a', 2: 'b'})}

做这个:

${foo(dict([(1, 'a'), (2, 'b')]))}