Jinja2 - 如何循环 json 列表

js

1个回答

写回答

馒头是猫

2025-06-20 00:30

+ 关注

JS
JS

使用 Jinja2 模板引擎可以很方便地对 JSON 列表进行循环操作。Jinja2 是一个基于 Python 的模板引擎,它允许开发者在 HTML 或其他文本文件中嵌入动态内容。

在开始之前,我们需要先了解 JSON 是什么。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。它由键值对组成,可以包含列表、嵌套对象等数据结构。在 Python 中,我们可以使用 JSon 模块将 JSON 字符串解析为字典或列表。

现在,让我们来看一个具体的例子,假设我们有一个包含多个学生信息的 JSON 列表,每个学生有姓名、年龄和成绩等属性。我们想要在网页中展示这些学生的信息。

首先,我们需要在 Python 中加载 JSON 数据,并将其传递给模板引擎。假设我们已经将 JSON 数据存储在 students 变量中,可以使用以下代码将其传递给模板引擎:

Python

from jinja2 import Template

template = Template('''

{% for student in students %}

姓名:{{ student.name }}

<img src="https://img.izhida.com/topic/a7f5f35426b927411fc9231b56382173.jpg" alt="Python"><br>Python

年龄:{{ student.age }}

成绩:{{ student.score }}

{% endfor %}

''')

result = template.render(students=students)

print(result)

在上面的代码中,我们定义了一个 Jinja2 模板,使用了 for 循环来遍历 students 列表中的每个学生。在循环体内,我们使用双花括号语法输出学生的姓名、年龄和成绩等信息。最后,我们通过调用 render 方法将数据传递给模板,并获取渲染后的结果。

接下来,让我们来看一个具体的案例,假设我们有一个名为 students.JSon 的文件,内容如下:

JSon

[

{

"name": "张三",

"age": 18,

"score": 90

},

{

"name": "李四",

"age": 19,

"score": 85

},

{

"name": "王五",

"age": 20,

"score": 95

}

]

我们可以使用以下代码读取该文件,并将 JSON 数据传递给模板引擎:

Python

import JSon

with open('students.JSon', 'r') as f:

students = JSon.load(f)

template = Template('''

{% for student in students %}

姓名:{{ student.name }}

年龄:{{ student.age }}

成绩:{{ student.score }}

{% endfor %}

''')

result = template.render(students=students)

print(result)

通过上述代码,我们可以将学生的姓名、年龄和成绩等信息以 HTML 格式输出。

例子代码:

Python

from jinja2 import Template

students = [

{

"name": "张三",

"age": 18,

"score": 90

},

{

"name": "李四",

"age": 19,

"score": 85

},

{

"name": "王五",

"age": 20,

"score": 95

}

]

template = Template('''

{% for student in students %}

姓名:{{ student.name }}

年龄:{{ student.age }}

成绩:{{ student.score }}

{% endfor %}

''')

result = template.render(students=students)

print(result)

在上面的代码中,我们定义了一个包含三个学生信息的列表,并将其传递给模板引擎。然后,我们使用 for 循环遍历列表中的每个学生,并使用双花括号语法输出学生的姓名、年龄和成绩。最后,我们通过调用 render 方法将数据传递给模板,并获取渲染后的结果。在这个例子中,最终输出的结果会包含三个学生的信息。

通过使用 Jinja2 模板引擎,我们可以很方便地对 JSON 列表进行循环操作。首先,我们需要将 JSON 数据加载到 Python 中,并将其传递给模板引擎。然后,我们可以使用 for 循环遍历列表中的每个元素,并在模板中使用双花括号语法输出相应的数据。最后,通过调用 render 方法将数据传递给模板,并获取渲染后的结果。这样,我们就可以在网页中展示 JSON 列表中的数据了。

参考资料:

- Jinja2 官方文档:https://jinja.palletsprojects.com/

- Python 官方文档:https://docs.Python.org/zh-cn/3/library/JSon.html

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号