2017-12-01 5 views
-2

私はJinja2でHTMLテーブルを生成しようとしています。テーブルのデータはcollections.OrderedDictにあり、キーは文字列で、値は文字列のリストです。jinja2でリストを印刷するにはどうしたらいいですか?

私は、次のループを使用してそれを実装しようとしました:Pythonのコンソールを除き

{% for key in table.keys() %} 
    {% for a_list in table[key] %} 
    {% for a_value in a_list %} 
     {{ a_value }} 
    {% endfor %} 
    {% endfor %} 
{% endfor %} 

これは動作しますが、Jinja2の中で、それは私がリストを反復処理するにはどうすればよいのエラーでTypeError: 'int' object is not iterable

を死にますJinja2で?

答えて

2

ループが1つ多くあります。 table[key]は、リストオブジェクトであるので、その上でループすると、リストにあなたの価値を与える:

{% for key in table.keys() %} 
    {% for a_value in table[key] %} 
    {{ a_value }} 
    {% endfor %} 
{% endfor %} 

あなたの余分なループはあなたのリストの整数オブジェクトをループしてみました。結果をkeys()にループする必要はありません。あなたが値上に直接、単にループをループ内でのキーを使用していない場合は

{% for key in table %} 
    {% for a_value in table[key] %} 
    {{ a_value }} 
    {% endfor %} 
{% endfor %} 

{% for list_value in table.values() %} 
    {% for a_value in list_value %} 
    {{ a_value }} 
    {% endfor %} 
{% endfor %} 
あなたは辞書を超える直接ループをすることができます
関連する問題