Flask Jinja2-解析JSON

1 python json jinja2 flask

我正在尝试在Jinja2 HTML模板中显示一些JSON结果,但是它返回一个空页,或者在新行上返回JSON的每个字符,或者返回每个带有空格的字符。

我要发送给Jinja2模板的对象如下所示:

[
  {
    "name": "John",
     "lastname": "Smith", 
     "age": 22, 
     "likes": [
       {"fruits": 
         ["bananas", "oranges"]
         }, 
       {"sweets": 
         ["chocolate"]
         }
       ]
     }
   ]
Run Code Online (Sandbox Code Playgroud)

要将JSON对象发送到Jinja2模板,请使用:

render_template("report.html", items=items)
Run Code Online (Sandbox Code Playgroud)

在Jinja2模板HTML(如果使用)上{{ items }},将完整的对象显示为文本。如果我试图获取,{{ items['name'] }}它将不会在页面上显示任何内容,该页面将完全空白。

我也尝试过

{% for x in items %}
{{ x }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

并且仅显示相同的“文本”,但以空格隔开: [ { " n a m e " : "J o h n " [...]

在HTML文件中,我正在尝试执行以下操作:

<div id="name">{{ items['name'] }}</div>
Run Code Online (Sandbox Code Playgroud)

如何在传递给Jinja2的JSON对象中显示对象?

小智 6

我想我已经结束了。

json_dumps首先,我必须处理对象,然后再处理json.loads新对象。

r = json.dumps(json_onject)
loaded_r = json.loads(r)
return render_template("report.html", items=loaded_r)
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用JSON对象中的任何值。