在Python中传递SQLite变量

4 投票
1 回答
6419 浏览
提问于 2025-04-15 16:21

我正在用Python写一个应用程序,并使用sqlite数据库。我有一个字符串列表,想把这些字符串添加到数据库中,每个元素代表一些数据,和它将放置的列相对应。

现在我有这样的代码:

cursor.execute("""insert into credit
                    values ('Citi','5567','visa',6000,9.99,'23',9000)""")

我可以很容易地添加字符串,但不知道怎么把我列表中的变量添加进去。

1 个回答

12

使用参数来调用 .execute() 方法:

query = """
     INSERT INTO credit
         (bank, number, card, int1, value, type, int2)
     VALUES
          (?, ?, ?, ?, ?, ?, ?)
        """
data =  ['Citi', '5567', 'visa', 6000, 9.99, '23', 9000]

cursor.execute(query, data)

根据 PEP249 的说明:

.execute(operation[,parameters])

这个方法用来准备和执行数据库操作(比如查询或命令)。你可以把参数作为一个序列或映射提供,这些参数会和操作中的变量绑定在一起。变量的表示方式是根据数据库的具体要求来定的(具体的格式可以查看模块的 paramstyle 属性)

检查 paramstyle

>>> import sqlite3
>>> print sqlite3.paramstyle
qmark

qmark 表示你可以用 ? 来作为参数的占位符。

撰写回答