2

テンプレートに次のものが含まれていると仮定します。

% 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

上記で

4

1 に答える 1

1

PEP 8は以下を推奨しています:

シーケンス (文字列、リスト、タプル) の場合、空のシーケンスは false であるという事実を使用します。

したがって、実際には長さを確認する必要はなく、次のように確認するだけです。

% if mydict.get('somekey'):
    ${mydict['somekey'][0]['hellothere']}</td></tr>
% endif
于 2012-11-27T23:21:28.803 に答える