You need to enable JavaScript to run this app. 运行python manage.py dumpdata无法序列化数据库报错如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

运行python manage.py dumpdata无法序列化数据库报错如何解决?

Django dumpdata 导出数据报错解决方案

报错根因

  • 核心错误为charmap编码无法序列化字符,该问题出现在Windows系统环境下:系统终端默认使用GBK(charmap)编码,当数据库中存在非ASCII字符(中文、emoji、小语种字符等)时,默认输出重定向无法完成编码。后续的Cannot operate on a closed database报错是编码错误触发的连锁异常,无需单独处理,编码问题解决后会自动消失。

可用解决方案

方案1:临时修改终端编码

在执行导出命令前,先在当前终端执行编码切换命令:

chcp 65001

再执行原导出命令即可:
python manage.py dumpdata > data.json

方案2:指定Python解释器使用UTF-8编码运行(推荐)

无需修改终端配置,直接执行如下命令即可,适配绝大多数场景:
python -Xutf8 manage.py dumpdata > data.json

注意:该方案仅支持Python 3.7及以上版本

方案3:修改项目配置永久适配

如果需要长期在Windows环境下做导出操作,可以直接修改项目settings.py添加配置,强制默认编码为UTF-8:

import sys
if sys.platform == 'win32':
    import _locale
    _locale._getdefaultlocale = (lambda *args: ['en_US', 'utf8'])

配置完成后正常执行原导出命令即可。

验证效果

导出完成后打开data.json文件,确认非ASCII字符无乱码、终端无报错即修复完成。

内容的提问来源于stack exchange,提问作者illymarev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 09:54:03