liste du dictionnaire dans le modèle jinja

Comment parcourir la liste des dictionnaires dans le modèle jinja?

list1=[{"username": "abhi","pass": 2087}]

 return render_template("file_output.html",lis=list1)

Dans le modèle

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

Le code ci-dessus divise chaque élément en plusieurs

Valeur Clé [

{

"

U

S

E ...

J'ai testé la boucle imbriquée ci-dessus dans un script Python simple et cela fonctionne bien mais pas dans le modèle jinja.

33
demandé sur user3089927 2014-08-19 02:41:07

3 réponses

Données:

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

Dans Jinja2 itération:

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

Remarque:

Assurez-vous d'avoir la liste des éléments dict.Si vous obtenez UnicodeError peut être la valeur à l'intérieur du dict contient le format unicode. Ce problème peut être résolu dans votre views.py si le dict est unicode objet, vous devez encoder dans utf-8

69
répondu Nava 2014-08-19 04:46:33

En tant que sidenote à la réponse de @Navaneethan, Jinja2 est capable de faire des sélections d'éléments "régulières" pour la liste et le dictionnaire, étant donné que nous connaissons la clé du dictionnaire, ou l'emplacement des éléments dans la liste.

Données:

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

Dans Jinja2 itération:

{% 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 sortie rendue:

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.
13
répondu Chris.Q 2015-09-10 21:10:04
{% for i in yourlist %}
  {% for k,v in i.items() %}
    {# do what you want here #}
  {% endfor %}
{% endfor %}
6
répondu corvid 2014-08-18 22:48:20