【发布时间】:2011-11-29 08:34:11
【问题描述】:
我很好奇为什么会发生这种情况。我使用 Mako 模板迭代一个元组,其中包含许多字典,而字典又包含链接信息:
links = (
{
'path' : request.route_url('home'),
'text' : 'Home'
},
{
'path' : "http://www.microsoft.com",
'text' : "Microsoft"
}
)
如果我将上述内容发送到视图,一切都按预期工作,链接就会显示出来。但是,如果我删除第二个链接:
links = (
{
'path' : request.route_url('home'),
'text' : 'Home'
}
)
我得到一个例外:TypeError: string indices must be integers, not str
如果我在字典末尾加一个逗号,事情就会重新开始。谁能解释一下是怎么回事?
编辑 Mako 模板 sn-p
<nav>
% for link in links:
<a href="${link['path']}">${link['text']}</a>
% endfor
</nav>
【问题讨论】:
-
您能展示一下 Mako 模板的外观吗?迭代代码是怎么写出来的?
-
@jochenritzel 做到了。不过,您也可以显式使用
tuple()内置函数来避免隐式语法怪癖。 docs.python.org/tutorial/…
标签: python exception dictionary