如何使用TAL中定义的变量检索字典中键的值?

JCa*_*ter 2 python zope plone zpt template-tal

我在python中定义了一个字典:

tal:define="dic python:{'a':'1', 'b':'2'};"
Run Code Online (Sandbox Code Playgroud)

我有另一个使用tal:define名为var 定义的变量,它是'a'或'b'.我尝试这样做时出错:

tal:define="foo python:dic['${var}'];"
Run Code Online (Sandbox Code Playgroud)

(foo那么'1'或'2')我明白了KeyError: '${var}'.我试过了dic[$var],dic[var]等等,他们都没有用.如何使用先前定义的变量tal:define作为字典的键来获取其值.

小智 5

路径表达式语法:

tal:define="foo dic/?var"
Run Code Online (Sandbox Code Playgroud)

Python表达式语法:

tal:define="foo python:dic[var]"
Run Code Online (Sandbox Code Playgroud)

有关?var语法的说明,请参阅Zope Book.