【问题标题】:Getting error when trying to insert JSON field in Postgres尝试在 Postgres 中插入 JSON 字段时出错
【发布时间】:2020-11-08 09:28:53
【问题描述】:

我在 django 中有以下架构。

class function(models.Model):
    func_id = models.IntegerField(primary_key=True)
    func_name = models.CharField(max_length=30)
    func_args = JSONField()
    func_version = models.CharField(max_length=20)
    func_desc = models.CharField(max_length=500)
    user = models.ForeignKey(user_data,on_delete=models.CASCADE)
    container_path = models.CharField(max_length=200)
    class Meta:
        db_table = 'function'

当我尝试在 postgres shell 中运行以下查询时

INSERT INTO
function(func_id,func_name,func_args,func_version,func_desc,user_id,container_path) 
VALUES (101,'Sum',{"input1":"a","input2":"b"},'1.7','blahblah',105,'/path');

我遇到以下错误:

ERROR:  syntax error at or near "{"
LINE 1: ...nc_desc,user_id,container_path) VALUES (101,'Sum',{"input1":...

任何线索我哪里出错了?

【问题讨论】:

  • 这个需要作为字符串插入,所以VALUES (101, 'Sum', '{ ... }', ...);

标签: json django postgresql


【解决方案1】:

尝试将您的 JSON 用单引号 '{...}' 括起来。尽管 JSONField 据说可以与 python 字典一起使用,但在执行原始 SQL 时,postgresql 将无法理解该语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 2013-05-18
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多