【发布时间】:2012-09-19 22:00:04
【问题描述】:
我正在尝试编写一个 JSON 初始数据夹具,它将在每次调用 syncdb 后加载。
我在我的mysite/myapp/fixtures 目录中放置了一个initial_data.json 文件:
[
{
"model": "myapp.Person",
"pk": 1,
"fields": {
"first_name": "Tom",
"last_name": "Yam"
}
}
]
当文件以 ASCII 编码时一切正常,但是当我将其保存为 UTF-8 编码时(我需要使用非 ASCII 字符)我得到以下错误:
Problem installing fixture 'initial_data.json': Traceback (most recent call last):
File "D:\Tom\DjangoEnv\Lib\site-packages\django\core\management\commands\loaddata.py", line 190, in handle
for obj in objects:
File "D:\Tom\DjangoEnv\Lib\site-packages\django\core\serializers\json.py", line 47, in Deserializer
raise DeserializationError(e)
DeserializationError: No JSON object could be decoded
根据 Django documentation,我需要在使用非 ASCII 数据和 JSON 序列化程序时设置 ensure_ascii=False,但我不知道该怎么做(因为它是从 syncdb 函数调用的.
任何想法如何使用 UTF-8 编码的 JASON 文件作为夹具?
【问题讨论】:
-
你对 Unicode 转义有什么看法?
标签: django json unicode utf-8 fixtures