¿Cómo iterar a través de una lista de diccionarios en la plantilla jinja?

Lo intenté:

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

En la plantilla:

  {% for dictionary in list1 %} {% for key in dictionary %}  {% endfor %} {% endfor %} 
Key Value

{{ key }}

{{ dictionary[key] }}

El código anterior está dividiendo cada elemento en varios caracteres:

 [ { " u s e r ... 

Probé el bucle nested anterior en un script de Python simple y funciona bien, pero no en la plantilla de Jinja.

Datos:

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

en la iteración Jinja2:

 {% for dict_item in parent_dict %} {% for key, value in dict_item.items() %} 

Key: {{key}}

Value: {{value}}

{% endfor %} {% endfor %}

Nota:

asegúrese de tener la lista de elementos de dict. Si obtiene UnicodeError , el valor dentro del dict contiene un formato de Unicode. Ese problema se puede resolver en su views.py si el dict es un objeto unicode , tiene que codificar en utf-8

Como referencia a la respuesta de @Navaneethan, Jinja2 puede hacer selecciones de elementos “regulares” para la lista y el diccionario, dado que conocemos la clave del diccionario o la ubicación de los elementos en la lista.

Datos:

 parent_dict = [{'A':'val1','B':'val2', 'content': [["1.1", "2.2"]]},{'A':'val3','B':'val4', 'content': [["3.3", "4.4"]]}] 

en la iteración Jinja2:

 {% for dict_item in parent_dict %} This example has {{dict_item['A']}} and {{dict_item['B']}}: with the content -- {% for item in dict_item['content'] %}{{item[0]}} and {{item[1]}}{% endfor %}. {% endfor %} 

La salida renderizada:

 This example has val1 and val2: with the content -- 1.1 and 2.2. This example has val3 and val4: with the content -- 3.3 and 4.4. 
 {% for i in yourlist %} {% for k,v in i.items() %} {# do what you want here #} {% endfor %} {% endfor %}