【问题标题】:How to insert a tuple/list into a database using SQLITE3?如何使用 SQLITE3 将元组/列表插入数据库?
【发布时间】:2019-09-25 00:20:04
【问题描述】:

我从一个表格中收集了几条数据,我想将这些数据输入到我的数据库中。但是,其中一个数据片段是根据用户按下的复选框数创建的列表。当我尝试将其插入列表时,我收到错误“sqlite3.InterfaceError:错误绑定参数 4 - 可能不受支持的类型。”。我的代码在“cur.execute(sql, Listing)”处停止工作。

我已尝试更改数据片段的类型,但我需要保持元组不变。我曾尝试使用 cur.executemany,但没有成功。

title = request.form['item_name']

platform = request.form.getlist('platform_list[]')

con = create_connection(DATABASE_NAME)

listing = (title, platform)

sql = """INSERT INTO items(id, title, platform) VALUES (NULL,?,?);"""

cur = con.cursor()

cur.execute(sql, listing)

con.commit()

con.close()

【问题讨论】:

    标签: database sqlite flask tuples


    【解决方案1】:

    Sqlite 没有“列表”datatype。这里有两个选项可以解决这个问题:

    • 将列表转换为字符串,如str = ",".join(platform)
    • 将列表转换为 JSON 字符串,如 json.dumps(platform)

    这将取决于数据在SELECTed 返回时将如何使用。

    如果您希望每个平台的数据库中有一行,您可以使用executemany。您必须以不同的方式构造listing,以便每个数组元素都包含所有插入参数。例如listing = [(title,x) for x in platform] 之类的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2013-09-08
      • 2013-10-06
      • 2020-07-20
      • 2018-12-21
      相关资源
      最近更新 更多