在Mako中创建模板时,我需要编写类似:${_('Hello, %(fname)s %(lname)s') % {'fname':'John','lname':'Doe'}}
在编写时,我一直在解析 SyntaxException :( SyntaxError)意外的EOF。有没有办法做同样的事情?
${_('Hello, %s %s') % ('John', 'Doe')}
有效,但如果需要,它不允许在更改语言时更改替换顺序。
感谢。
答案 0 :(得分:2)
在Mako的{}
中使用${}
很复杂;显然,Mako在找到第一个}
后停止解析表达式。可能的解决方法是使用dict()
代替{}
:
${_('Hello, %(fname)s %(lname)s') % dict(fname='John', lname='Doe')}
答案 1 :(得分:0)
尝试新的Python字符串格式:
>>> "{foo} {bar}".format(foo="foo", bar="bar")
'foo bar'
>>> "{foo} {bar}".format(**{"foo": "Hello", "bar": "World!"})
'Hello World!'
它看起来更好,并且具有前瞻性。