【问题标题】:How to add a list values from JSON to sqlite column如何将 JSON 中的列表值添加到 sqlite 列
【发布时间】:2021-11-21 04:53:15
【问题描述】:

我通过 rabbitMQ 收到一条 json 消息,我想将它存储到数据库中。

消息如下所示:

message ={
    "ticket": "ticket_12334345",
    "items" : ["item1","item2","item3"],
    "prices" : [10,20,15],
    "full price" : [45]
}

存储到数据库如下所示:

def callback(ch, method, properties, body):
    print("%r" % body)
    body = json.loads(body)
    conn = sqlite3.connect('pythonDB.db')
    c = conn.cursor()
    c.execute('CREATE TABLE IF NOT EXISTS Table_3 (ticket TEXT, items TEXT, prices INTEGER,'
              'FullPrice INTEGER)')

    c.execute("INSERT INTO Table_3 VALUES(?,?,?,?)", (body["ticket"],
                                                    body["items"], body["prices"], body["full price"],
                                                    ))
    conn.commit()

我收到一个错误 sqlite3.InterfaceError: Error binding parameter 0 - 可能是不受支持的类型。

我认为这是因为我没有正确存储列表数据。我想在列中将列表中的所有值放在一个单元格中。

【问题讨论】:

    标签: python-3.x sqlite


    【解决方案1】:

    使用 str() 函数,如下所示:

    def callback(ch, method, properties, body):
        print("%r" % body)
        body = json.loads(body)
        conn = sqlite3.connect('pythonDB.db')
        c = conn.cursor()
        c.execute('CREATE TABLE IF NOT EXISTS Table_3 (ticket TEXT, items TEXT, prices INTEGER,'
                  'FullPrice INTEGER)')
    
        c.execute("INSERT INTO Table_3 VALUES(?,?,?,?)", (body["ticket"],
                                                        str(body["items"]), str(body["prices"]), str(body["full price"][0]),
                                                        ))
        conn.commit()
    

    【讨论】:

      猜你喜欢
      • 2017-11-10
      • 2014-11-12
      • 2021-08-03
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 1970-01-01
      相关资源
      最近更新 更多