Skip to main content
 首页 » 编程设计

python之Flask Jinja2之解析 JSON

2025年05月04日13yyy_WW

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

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

[ 
  { 
    "name": "John", 
     "lastname": "Smith",  
     "age": 22,  
     "likes": [ 
       {"fruits":  
         ["bananas", "oranges"] 
         },  
       {"sweets":  
         ["chocolate"] 
         } 
       ] 
     } 
   ] 

要将 JSON 对象发送到我使用的 Jinja2 模板:

render_template("report.html", items=items) 

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

我也试过

{% for x in items %} 
{{ x }} 
{% endfor %} 

它只显示相同的“文本”但有间距: [ { "n a m e ": "J o h n "[...]

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

<div id="name">{{ items['name'] }}</div> 

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

请您参考如下方法:

我想我已经结束了。

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

r = json.dumps(json_onject) 
loaded_r = json.loads(r) 
return render_template("report.html", items=loaded_r) 

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