gpt4 book ai didi

python - 在 Django loaddata 中,它会抛出 json 格式的错误,但对于 yaml 格式却可以正常工作,为什么?

转载 作者:太空狗 更新时间:2023-10-29 17:51:24 24 4
gpt4 key购买 nike

为了学习如何在数据库中导入初始数据,我创建了模型,

from django.db import models

class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)

之后,我使用 .json 格式的 fixture,如下所示,

[
{
"model": "myapp.person",
"pk": 1,
"fields": {
"first_name": "John",
"last_name": "Lennon"
}
},
{
"model": "myapp.person",
"pk": 2,
"fields": {
"first_name": "Paul",
"last_name": "McCartney"
}
}
]

加载数据时抛出错误

File "C:\Python27\lib\site-packages\django\core\serializers\python.py", line 96, in Deserializer

Model = _get_model(d["model"])

django.core.serializers.base.DeserializationError: Problem installing fixture 'I:\DJANGO\library\myapp\fixtures
\bookdata.json': string indices must be integers

但是当我使用下面给出的 YAML 格式的 fixture 时,

- model: myapp.person
pk: 1
fields:
first_name: John
last_name: Lennon
- model: myapp.person
pk: 2
fields:
first_name: Paul
last_name: McCartney

它就像一个魅力。

现在我很困惑哪里出了问题,因为整个事情都是从他们的文档中复制的。我正在使用 windows 32 位、Django 1.9、python 2.7。

最佳答案

我已经在 linux mint/django 1.9/python 2.7 中检查了你的代码,它工作正常。

我认为问题可能是您在文件中使用的编码。请确保json文件使用UTF-8编码,注意不要使用BOM 。 Notepad++ 编辑器可以确定文件是否包含 BOM 并将其删除。

关于python - 在 Django loaddata 中,它会抛出 json 格式的错误,但对于 yaml 格式却可以正常工作,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34550741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com