Django JSONField:意外的数组元素

时间:2017-04-07 09:31:59

标签: json django postgresql

我正在尝试在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/

有人能指出我在这里想念的是什么吗?

1 个答案:

答案 0 :(得分:0)

通常,如果对特定数据类型的类型转换未正确完成,则会返回此错误。我可以通过将其显式转换为MyClass.objects.create(myfield = ({'a': 1, 'b': 2})::jsonb) jsonb 来消除此错误。

正如@John指出的那样,消除空格并尝试一下。这可能也有帮助。