2011-01-06 11 views
6

Poniższy wyrzuca błąd składni, „nieoczekiwany EOF podczas parsowania”:Słownik literały w Mako wyrażenia

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

co chyba jest z wewnętrznej klamra zamykająca kręcone. Działa to dobrze:

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

ale co składnia do używania słownika dosłowne?

Odpowiedz

6

Od Brian Rue na Mako Templates Google Group:

Jest to długo wybitny bug; po prostu użyj dict(). Jeśli potrzebujesz słownika z kluczami, które nie są ciągami, przekonwertuj listę krotek do dyktatury. np. Zamiast tego:

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

to zrobić:

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