Python 模板化生成 JSON 的 3 种高阶方法
在现代 Web 开发中,动态生成结构化 JSON 数据已成为高频需求。手动拼接字符串不仅易错,还难以维护。Python 提供了多种优雅的模板化方式来自动生成 JSON,提升开发效率与代码可读性。
使用 Jinja2 模板引擎生成 JSON
Jinja2 不仅适用于 HTML 渲染,也能高效生成 JSON 内容。将数据结构注入模板,实现逻辑与内容分离。
from jinja2 import Template
json_template = Template('''
{
"user_id": {{ user_id }},
"username": "{{ username }}",
"roles": [
{% for role in roles %}
"{{ role }}"{% if not loop.last %},{% endif %}
{% endfor %}
]
}
''')
rendered = json_template.render(user_id=1001, username="alice", roles=["admin", "dev"])
print(rendered)
该方法适合复杂嵌套结构,支持条件判断和循环,灵活性强。
利用 dataclasses 与自定义序列化器
通过 dataclasses 定义数据模型,并结合 JSON 序列化钩子实现模板化输出。
from dataclasses import dataclass, asdict
import json
@dataclass
class User:
user_id: int
username: str
active: bool = True
def to_json(self):
return json.dumps(asdict(self), indent=2)
user = User(user_id=1001, username="alice")
print(user.to_json())
此方式类型安全,易于集成到 API 响应流程中。
结合 Mako 模板批量生成测试数据
Mako 语法简洁,适合批量生成 JSON 测试集。
- 安装 Mako:
pip install Mako - 定义模板并绑定上下文变量
- 循环渲染生成多条 JSON 记录

