json - Django JSONField : Unexpected array element

标签 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/

谁能指出我在这里遗漏了什么?

最佳答案

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

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

关于json - Django JSONField : Unexpected array element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43274610/

相关文章:

python - Docker 构建似乎看不到 requirements.txt,即使它在同一目录中

sql - Django 进行 1000 次重复查询

javascript - 使用 node.js 驱动程序将 Mongo 集合导出到 json

javascript - Kendo DropDownList 从 dataTextField 或 dataValueField 以外的 json 数据中获取元素

python - 如何有效地获取过滤查询集的随机元素?

Django admin 没有风格

ruby-on-rails - 多个 worker 的 Rails DB Performance

postgresql - 创建和索引包含连接的字段

c# - 从 C# Windows 窗体调用 PHP Web 服务

php - 如何使用 curl_setopt() 将提供的带有内联参数的单行 cURL 代码转换为格式