我试图在 Django 中保存一条记录 JSONField,声明如下:
class MyClass(models.Model):
myfield = JSONField()
使用此代码片段:
MyClass.objects.create(myfield = {'a': 1, 'b': 2})
但是结果是
DataError: malformed array literal: "{"a": 1, "b": 2}"
LINE 1: ... '{"a": 1, ...
^
DETAIL: Unexpected array element.
我正在尝试按照此处描述的示例进行操作:https://docs.djangoproject.com/en/1.10/ref/contrib/postgres/fields/
谁能指出我在这里遗漏了什么?
最佳答案
通常,如果未正确完成对特定数据类型的类型转换,则会返回此错误。我可以通过将其显式转换为 jsonb 来消除此错误:MyClass.objects.create(myfield = ({'a': 1, 'b': 2})::jsonb)
.
正如@John 指出的那样,消除空格并尝试一下。这也可能有所帮助。
关于json - Django JSONField : Unexpected array element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43274610/