example python flask jinja2

python - example - jinja2



lista de diccionario en plantilla jinja (3)

Datos:

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

en la iteración de Jinja2:

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

Nota:

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

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

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

en la plantilla

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

El código anterior está dividiendo cada elemento en múltiples

Valor clave [

{

"

tu

s

e ...

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


Como nota al margen de 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 de 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 representada:

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 %}