2017-12-01 8 views
-2

Jinja2로 HTML 테이블을 생성하려고합니다. 테이블에 대한 데이터는 키가 문자열이고 값이 문자열 목록 인 collections.OrderedDict에 있습니다. 이 작동하지만 Jinja2에서이 TypeError: 'int' object is not iterablejinja2로 목록을 인쇄하려면 어떻게해야합니까?

가 어떻게 목록을 반복 않는 오류로 사망 파이썬 콘솔에서 제외

{% for key in table.keys() %} 
    {% for a_list in table[key] %} 
    {% for a_value in a_list %} 
     {{ a_value }} 
    {% endfor %} 
    {% endfor %} 
{% endfor %} 

:

나는 다음과 같은 루프를 사용하여 구현하기 위해 노력했습니다 진자 2?

답변

2

하나의 루프가 너무 많습니다. table[key]는 목록 개체, 그래서 그 이상 반복하면 목록에 당신에게 값을 제공합니다

{% for key in table.keys() %} 
    {% for a_value in table[key] %} 
    {{ a_value }} 
    {% endfor %} 
{% endfor %} 

귀하의 외부 루프는 목록의 정수 객체를 반복했습니다. 결과에 keys()을 반복 할 필요는 없습니다. 할 수 있습니다 직접 사전을 통해 루프 :

{% for key in table %} 
    {% for a_value in table[key] %} 
    {{ a_value }} 
    {% endfor %} 
{% endfor %} 

직접 값을 통해 루프의 주요 단지 루프를 사용하지 않는 경우 :

{% for list_value in table.values() %} 
    {% for a_value in list_value %} 
    {{ a_value }} 
    {% endfor %} 
{% endfor %}