1. ホーム
  2. python

[解決済み] Jinjaテンプレートで辞書のリストを反復処理するには?

2022-11-24 16:15:38

質問

試してみました。

list1 = [{"username": "abhi", "pass": 2087}]
return render_template("file_output.html", list1=list1)

テンプレートで

<table border=2>
  <tr>
    <td>
      Key
    </td>
    <td>
      Value
    </td>
  </tr>
  {% for dictionary in list1 %}
    {% for key in dictionary %}
      <tr>
        <td>
          <h3>{{ key }}</h3>
        </td>
        <td>
          <h3>{{ dictionary[key] }}</h3>
        </td>
      </tr>
    {% endfor %}
  {% endfor %}
</table>

上記のコードは、各要素を複数の文字に分割しています。

[

{

"

u

s

e

r

...

上記のネストされたループを簡単なPythonスクリプトでテストしたところ、うまくいきましたが、Jinjaテンプレートではうまくいきません。

どのように解決するのですか?

データです。

parent_list = [{'A': 'val1', 'B': 'val2'}, {'C': 'val3', 'D': 'val4'}]

をJinja2イテレーションで表示します。

{% for dict_item in parent_list %}
   {% for key, value in dict_item.items() %}
      <h1>Key: {{key}}</h1>
      <h2>Value: {{value}}</h2>
   {% endfor %}
{% endfor %}

注意

dictアイテムのリストがあることを確認してください。もし UnicodeError と表示される場合は、dictの中の値がunicode形式を含んでいる可能性があります。この問題は views.py . もし、dictが unicode オブジェクトである場合、エンコードして utf-8 .