2017-12-27 37 views
0

나는 이런 식의 파이썬 사전을 가지고있다. {0: {'record': u'running fast', 'moreInfo': u'test', 'year': u'2017', 'name': u'Jose la computadora', 'activity': u'Cross Country'}, 1: {'record': u'test', 'moreInfo': u'ttt', 'year': u'2000', 'name': u'Lewdog', 'activity': u'Cross Country'}}파이썬 사전에 문제가 있고 진자로 문제가있다.

플라스크가있는 진자 템플릿에 전달 중입니다. 사전은 databaseQuery 변수로 설정되고 Jinja로 전달됩니다. 내 진자 코드는 다음과 같이 보이지만 페이지에는 아무 것도 나타나지 않습니다. 페이지에서 databaseQuery를 인쇄하면 전체 사전을 얻습니다. 테스트를 인쇄하면 0 1이 표시됩니다. 나는 사전을 반복하고 각 값을 페이지에 표시하는 방법을 알아 내려고하고있다.

{% for test in databaseQuery %} 
{{test["name"]}} 
{% endfor %} 

나는 이것을 list of dictionary in jinja template으로 보았지만 행운이 없었다.

감사합니다.

+0

[Flask에서 Jinja2를 사용하여 중첩 된 dict 항목 가져 오기] (https://stackoverflow.com/questions/24727977/get-nested-dict-items-using-jinja2-in-flask) – nndi

답변

1

그럼 당신은 그냥 databaseQuery의 키를 반복하고 있습니다.

Jinja는 일부 오류를 억제하므로 사용자를 위해 폭발하지 않습니다.

이것은 Jinja 문제가 아니지만 파이썬 문제입니다. 키, 값 또는 항목을 지정하지 않고 사전을 반복하는 경우 키가 반복됩니다. 0과 1은 정수입니다. 당신은 단지 값에 액세스하려면

, 당신은

{% for val in databaseQuery.values() %} 
    {{ val['name'] }} 
{% endfor %} 

은 당신이 원하는 걸 얻을해야 할 수 있습니다. 이러한 정수 (0과 1)가 의미있는 것으로 사용되지 않는 한 주목할 가치가 있습니다. 사전 목록을 지나치고 그대로 반복하면됩니다.

0

dict을 반복하면 키만 생성됩니다. 당신은 할 수 있습니다 :

{% for k in databaseQuery %} 
    {{ databaseQuery[k]['name'] }} 
{% endfor %} 

또는 :

{% for k, v in databaseQuery.items() %} 
    {{ v['name'] }} 
{% endfor %} 
0

헤이를;

dict를 통해 파이썬 반복은 당신에게 열쇠를줍니다.

a = {1:'test'} 
for k in a 

1 값

에 액세스 할 수 a[key]을하려고 줄 것이다

편집 :

{% for test in databaseQuery %}   
{{databaseQuery[test]}} 
{% endfor %}