假设我的模板中包含以下内容:

% 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


以上

最佳答案

PEP 8建议:


  对于序列(字符串,列表,元组),请使用以下事实:
  序列是错误的。


因此,实际上您不需要检查长度,而只需像这样检查它:

% if mydict.get('somekey'):
    ${mydict['somekey'][0]['hellothere']}</td></tr>
% endif

09-08 04:57