Словарь литералов в выражениях Мако - PullRequest
6 голосов
/ 06 января 2011

Следующее выдает синтаксическую ошибку "неожиданный EOF при синтаксическом анализе":

${foo({'bar':'baz'})}

, которая, как я полагаю, происходит из внутренней закрывающей фигурной скобки.Это прекрасно работает:

${foo(dict(bar='baz'))}

но каков синтаксис использования литерала словаря?

1 Ответ

6 голосов
/ 09 января 2011

От Брайана Рю из Мако шаблонов Google Group :

Это давняя ошибка;просто используйте dict ().Если вам нужен словарь с ключами, которые не являются строками, преобразуйте список кортежей в dict.Например, вместо этого:

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

сделать это:

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

...