Округлить значения в списке в Jinja - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть словарь как

dictionary_num = {'Age': [-1.0, 25.0], 'M2': [-1.0, 42.0], 'younChild': [-1.0, 7.0], 'M4': [-1.0, 216.0]}

и другой словарь как

dictionary_mcqsr = {'M5': [-1.0, 3.0, 0.0, 2.0, 1.0], 'M6': [-1.0, 0.0, 1.0], 'M7': [-1.0, 1.0, 0.0], 'M8A': [0.0, -1.0, 1.0, 2.0], 'M8B': [1.0, 0.0, -1.0], 'M9': [0, 1], 'M11': [0, 1], 'M12': [2, 1, 0, -1]}

который отображается как

{% for key,value in dictionary_num.items() %}
                        {% if key == j %}
                            <td>{{value}}</td>
                        {% endif %}
              {% endfor %}
{% for key,value in dictionary_mcqsr.items() %}
                            {% if key == j %}
                                <td>{{value}}</td>
                            {% endif %}
                  {% endfor %}

где j относится к ключам. Когда я отрисовываю его, я хочу удалить десятичные точки на стороне jinja в словарь dictionary_num и dictionary_mcqsr и отсортировать значения для dictionary_mcqsr, но не смог найти никакого решения.

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Вы можете использовать sort и round фильтр в Jinja.

{% for key, value in dictionary_num.items() %}
    {% if key == j%}
        <td>
        [
            {% for element in value %}
                {{ element.value | round | int }}
                {% if not loop.last%}
                    ,
                {% endif %}
            {% endfor %}
        ]
    {% endif %}
{% endfor %}
{% for key, value in dictionary_mcqsr.items() %}
    {% if key == j%}
        <td>
        [
            {% for element in value | sort %}
                {{ element.value | round | int }}
                {% if not loop.last%}
                    ,
                {% endif %}
            {% endfor %}
        ]
    {% endif %}
{% endfor %}
0 голосов
/ 28 апреля 2018

Используйте фильтр вокруг того, что вы хотите округлить:

Пример: (для одного элемента)

{{ (value)|round|int }}

РЕДАКТИРОВАТЬ: Для списка:

{% for key,value in dictionary_num.items() %}
                        {% if key == j %}
                            <td>[{% for element in value %} {{ (element.value)|round|int }}{% if not loop.last %},{% endif %} {% endfor %}]</td>
                        {% endif %}
              {% endfor %}
{% for key,value in dictionary_mcqsr.items() %}
                            {% if key == j %}
                                <td>[{% for element in value %} {{ (element.value)|round|int }}{% if not loop.last %},{% endif %} {% endfor %}]</td>
                            {% endif %}
                  {% endfor %}
...