2016-12-15 61 views
0

鍵 - 值在HTML我有串JSON對象,看起來像 '{"key1":"value1", "key2": "value2", "key3": "value3"}' 打印在JSON對象和Django

我可以用json.loads,以使該成JSON對象,但是當我嘗試打印它HTML,它打印整個JSON對象像

{"key1":"value1", "key2": "value2", "key3": "value3"}

我的函數看起來像:

def jsonPretty(json_string): 
    return json.loads(json_string) 

和HTML/Django的:

{{kvpair|jsonLoadsPretty}} 

但是我想它打印

key1 value1 key2 value2 key3 value3

格式可以變化一點點,但我想每個鍵 - 值對由\n分離,和括號應該被刪除。

這樣做的最好方法是什麼?

編輯:

我使用{% with kvpair|jsonPretty as kvjson %}

{% for k, v in kvjson.items %} 
    <p> {{k}} {{v}}</p> 

運行一個for循環之前,現在它工作正常。感謝@AndreyShipilov的幫助!

回答

2
{% for key, value in kvpair %} 
    <p>{{ key }} {{ value }}</p> 
{% endfor%} 

https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#for

+0

的kvpair是一個字符串,所以我試圖json.loads首先使用for循環之前。但是它會返回錯誤:'TemplateSyntaxError:無法解析某些字符:| {{kvpair || jsonLoadsPretty}}' – JChao

+0

從字符串中生成一個JSON對象,然後將其傳遞給模板。然後你就可以對它做'{%for%}'。 –

+0

我正在使用上面寫的jsonPretty函數。我現在在HTML中的行看起來像'{%for k,v in kvpair | jsonPretty%}'。如果我只是輸出'k',它給了我鑰匙,但是輸出k,v以某種方式使它再次成爲一個字符串並返回鑰匙的前2個字符..... – JChao