我已经使用Python2.7、Django 1.5和PostgreSQL 9.2两个星期了。以前从没见过。所有的东西都是新安装在我的Windows 7机器上,所以它应该有默认设置。Django漂亮地在我的数据库中生成表。看起来一切都很好。通过运行以下命令,我可以从数据库中转储数据:
manage.py dumpdata > test.json或
manage.py dumpdata --indent4 > test.json我看到了JSON文件,它看起来像它应该有的样子。
然后,我截断一些表并尝试用以下方法从JSON文件中加载它们:
python manage.py loaddata database = T2 test.json // or without db name我得到了以下错误:
“UnicodeDecodeError:'utf8‘编解码器无法在0位置解码字节0 0xff :无效开始字节”
如果我在记事本中打开test.json文件,将其保存为utf8并重试,则得到:
“不能解码JSON对象”
文件看起来还可以,而不是空的。
顺便说一下,当我用记事本打开JSON文件时,它提供了将其保存为Unicode的功能。我的数据库有UTF8编码。请给我建议。谢谢。
发布于 2020-01-22 10:05:37
对我起作用的是遵循以下步骤:
- Open the file in regular notepad
- Select save as
- Select encoding "UTF-8" (Not "UTF-8 (With BOM)")
- Save the file.现在您可以使用加载数据。
但是,这只适用于小到足以打开记事本的文件。
发布于 2013-07-24 20:06:41
发布于 2018-08-27 05:27:23
我找到了一种解决这个问题的方法,方法是手动重新输出一个新的二进制json文件,它的代码如下:rb代表“读和二进制”,wb表示“写和二进制”。
首先,转到shell:
python manage.py shell其次,将test.json重写为二进制文件:
with open('path/to/test.json', 'rb') as f:
data = f.read()
newdata = open('newfile.json', 'wb')
newdata.write(data)
newdata.close()
exit()然后您可以加载该文件:
python manage.py loaddata newfile.json以上代码适用于我。希望它也能帮到你。
https://stackoverflow.com/questions/17843630
复制相似问题