【问题标题】:How can I store raw stringified JSON in a sqlite column?如何将原始字符串化 JSON 存储在 sqlite 列中?
【发布时间】:2020-07-21 07:38:15
【问题描述】:

我在 python 中使用 sqlite3,我正在尝试一种简单的方法将原始 JSON 存储到称为“数据”的特定列中。每次我尝试将字符串化的 JSON 连接到 INSERT 语句中时,都会出现语法错误。有没有办法解决这个问题?

data = str({'test': 21, 'test2':'hello'})
query = f"INSERT INTO table (DATA) VALUES ('{data}')"

【问题讨论】:

    标签: python json sqlite


    【解决方案1】:

    您的数据库中列的类型是什么?我建议将您的 JSON 作为字符串/varchar 类型存储到数据库中。您也可以将其转换为 blob,但我认为字符串更易于处理。

    【讨论】:

    • 我正在尝试将其存储为字符串;但是,每当像这样输入并运行查询时,我都会从 SQLITE 收到语法错误
    【解决方案2】:

    想通了,而不是在执行 c.execute 之前连接字符串,您可以只执行 c.execute("INSERT INTO table (c1, c2, c3) VALUES (?,?,?)", [c1, c2 , c3])

    【讨论】:

      【解决方案3】:

      你不能字符串化、存储和解析

      db.run("CREATE TABLE IF NOT EXISTS table (data TEXT)");
      
      stmt = db.prepare("INSERT INTO table VALUES (?)");
      stmt.run(JSON.stringify(data));
      stmt.finalize();
      
      
        db.each("SELECT rowid AS id, info FROM table", (err, row) => {
            console.log(row.id + ": " + JSON.parse(row.data).test);
        });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-03
        • 1970-01-01
        相关资源
        最近更新 更多