如何将Django数据库中的数据导出保存到本地JSON文件
Django导出Student模型数据为JSON文件的实现方法
方法1:使用Django内置dumpdata命令(无需编写额外代码)
这是最简单的导出方案,直接使用Django自带的管理命令即可完成:
- 打开终端,进入Django项目根目录(包含
manage.py文件的目录) - 执行如下命令,替换占位符后即可导出所有学生数据:
python manage.py dumpdata [你的App名称].Student --indent 2 --output student_data.json
参数说明: [你的App名称]:替换为你定义Student模型的Django应用的名称--indent 2:可选参数,用于格式化输出的JSON,提升可读性--output student_data.json:指定导出的文件路径与名称,执行命令后文件会生成在当前目录
方法2:自定义脚本导出(支持自定义导出规则)
如果你需要对导出数据做过滤、裁剪字段、处理特殊格式等自定义操作,可以用自定义脚本实现:
- 在你的应用目录下新建
export_students.py文件,写入如下代码:
import json import os import django # 初始化Django环境 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "[你的项目名].settings") django.setup() from [你的App名称].models import Student def export_student_data(): # 读取所有学生数据,转换为字典列表 student_list = list(Student.objects.all().values()) # 写入本地JSON文件 with open("student_data.json", "w", encoding="utf-8") as f: json.dump(student_list, f, ensure_ascii=False, indent=2) if __name__ == "__main__": export_student_data() print("数据导出完成")
- 替换代码中的
[你的项目名]和[你的App名称]为实际的项目、应用名称 - 终端执行
python export_students.py即可生成JSON文件,ensure_ascii=False参数可以保证中文正常输出不会乱码
提示:dumpdata导出的JSON会包含Django的模型元数据(如模型路径、主键标识等),如果仅需要学生业务字段,优先使用第二种方案。
内容的提问来源于stack exchange,提问作者Amitav Panda
相关产品推荐
相关产品推荐

