【发布时间】:2017-09-02 15:08:39
【问题描述】:
我正在尝试在 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/
谁能指出我在这里遗漏了什么?
【问题讨论】:
-
您尝试将 JSON 数据插入 ARRAY 列,但这些数据类型不同
-
@VaoTsun 但是数组列在哪里?我将该字段声明为
JSONField -
此字段要求 PostgreSQL ≥ 9.4 和 Psycopg2 ≥ 2.5.4。
-
@itzmeontv 我使用 PostgreSQL 9.6 和 Psycopg2 2.6.1
-
有时 Django 会以神秘的方式出现错误行为:尝试 myfield={'a': 1,'b':2} (消除 '=' 周围的空白)。另外,你迁移数据库了吗?
标签: json django postgresql