Как проверить, существует ли переменная списка в шаблоне python mako?

Предполагая, что у меня есть следующее в моем шаблоне:

% if not mydict['somekey'] is UNDEFINED:
    ${mydict['somekey'][0]['hellothere']}</td></tr>
% endif    

Моя проблема выше не работает как mydict['somekey'] всегда массив, но он может быть пустым. Я хочу быть в состоянии проверить, чтобы убедиться, что если mydict['somekey'] Я могу добавить проверку, чтобы убедиться, что 1) размер списка больше 0 (из шаблона) или если mydict['somekey'] имеет элементы в нем, так что я могу распечатать то, что в mydict['somekey'][0]['hellothere'] по мере доступности.

Что я должен сделать? Я продолжаю получать:

IndexError: list index out of range

с вышеупомянутым

1 ответ

Решение

ПКП 8 рекомендует:

Для последовательностей (строк, списков, кортежей) используйте тот факт, что пустые последовательности являются ложными.

Так что на самом деле вам не нужно проверять длину и просто проверять это так:

% if mydict.get('somekey'):
    ${mydict['somekey'][0]['hellothere']}</td></tr>
% endif
Другие вопросы по тегам