提问人:MorS 提问时间:2/16/2023 更新时间:7/8/2023 访问量:117
我在 Django 中将数据转储到 JSON 时收到 UnicodeDecodeError,Unicode 无法识别俄语字母的字符
I got UnicodeDecodeError in Django while dumping data into JSON, Unicode does not recognize characters of the Russian alphabet
问:
我是 Django 的新手,所以我需要一些帮助。 我需要创建夹具并使用此命令完成
python manage.py dumpdata products.ProductCategory > category.json
然后我得到了这个
{
"model": "products.productcategory",
"pk": 1,
"fields": {
"name": "╬фхцфр",
"description": "╬яшёрэшх юфхцф√"
}
}
当我尝试加载数据时,Django 给了我一个错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
有没有办法对此 JSON 进行编码或正确转储数据?
我在文档中搜索了一下,但不幸的是我没有找到任何有价值的东西
答:
0赞
eliaseraphim
2/16/2023
#1
发布完整的堆栈跟踪很有帮助,因为如果没有它,就很难确定错误的来源。您是否可以更新您的问题以包含错误的完整堆栈跟踪?loaddata
话虽如此,您的数据库可能未配置为使用 UTF-8。根据您使用的数据库系统,您可能需要添加额外的配置。
请参阅此处的文档:https://docs.djangoproject.com/en/4.1/ref/unicode/
如果您使用的是 SQLite,则无需进行任何额外的配置。
请注意,有一个输出选项:。这可以代替 .完整的命令是:dumpdata
-o OUTPUT
>
python manage.py dumpdata products.ProductCategory -o category.json
您可以尝试的最后一件事是:
- 在记事本中打开文件。
- 选择另存为。
- 选择编码“UTF-8”。
- 保存文件。
请参阅此处:Python:是否可以转储数据无法加载数据。UnicodeDecodeError
评论
0赞
MorS
2/24/2023
“全栈跟踪”到底是什么意思?
0赞
MorS
2/24/2023
我尝试了 -o 方法,但现在我的俄语字符变成了 现在 Pycharm 让我将编码更改为 windows-1251
0赞
eliaseraphim
2/25/2023
您可以在运行命令时发布完整的错误消息吗?loaddata
评论