Почему значения dict в списке не распечатываются?

Итак, я хочу перебрать несколько списков, каждый из которых имеет один или несколько словарей. Для примера дано:

          r = [{"symbol":10},{"symbol":15},{"symbol":25}]
    h = [{"sy":15},{"sy":23},{"sk":64}]
    i = [{"sl":45},{"sl":67},{"sl":98}]

Я хочу, чтобы он печатал:

          Symbol sy sl
    10      15  45
    15      23  67
    25      64  98

Я сделал это на питоне, и это сработало отлично:

          for p in r,h,i:
        if p == r:
            print(p[c]["symbol"])
        elif p == h:
            print(p[c]["sy"])
        elif p == i:
            print(p[c]["sl"])

он отлично работает в python. Но при выводе в jinja выводится только первое слово. Я использую флягу для связи с серверной стороной, которая написана на python. Но у меня есть некоторые проблемы с этим в jinja: вот мой код jinja:

          
    {%set c = 0%}
    {% for s in symbol,stockname,shares,price,total%}
    <tr>
        {%if s == symbol%}
          <td> {{s[c].symbol}}</td>

        {%if s == stockname %}
          <td> {{s[c].stockname}}</td>

        {%if s == shares %}
          <td> {{s[c].shares}}</td>

        {%if s == price %}
          <td> {{s[c].price}}</td>


        {%if s == total %}
          <td> {{s[c]["total"]}}</td>
    </tr>
        {%set c = c + 1%}

        {%endif%}
        {%endif%}
        {%endif%}
        {%endif%}
        {%endif%}

    {%endfor%}


    </table>
    {% endblock %}```

1 ответ

Я понял. Во-первых, я должен сказать, что я не получил ввода, который хотел, в python. В python, чтобы получить каждый список словарей, выводимых так, как я хотел, мне пришлось использовать этот подход:

      r = [{"symbol":10},{"symbol":15},{"symbol":25}]
h = [{"sy":15},{"sy":23},{"sy":64}]
i = [{"sl":45},{"sl":67},{"sl":98}]
c = 0
n = []
for p in r,h,i:
    print(r[c]["symbol"])
    print(h[c]["sy"])
    print(i[c]["sl"])
    c+=1
Другие вопросы по тегам