0

我通过 将 csv 文件传递​​给 Mako csv.DictReader,并且字典使用行标题作为键。其中一些具有诸如“条目 ID”之类的名称。当我尝试在模板中引用这些多字键时,Mako 会抛出错误。具体来说,错误消息是mako.exceptions.SyntaxException: (SyntaxError) invalid syntax (<unknown>, line 1)

以下代码演示了我遇到的问题:

from mako.template import Template

mydata = {'foo': 'bar', 'better foo': 'beach bar'}
working_template = Template("Let's go to the ${foo}")
fail_template = Template("Let's go to the ${better foo}")

# this works
print working_template.render(**mydata)
# this generates an Exception
print fail_template.render(**mydata)

有没有办法为多字键转义空格?

4

1 回答 1

0

我找到了一种可行的方法,但如果可能的话,我宁愿将字典作为 **kwargs 发送。这是工作解决方案:

from mako.template import Template

mydata = {'foo': 'bar', 'better foo': 'beach bar'}
working_template = Template("Let's go to the ${foo}")
fail_template = Template("Let's go to the ${mydata['better foo']}")

print working_template.render(**mydata)
print fail_template.render(mydata=mydata)
于 2012-11-14T15:04:46.840 回答