在Python中传递SQLite变量
我正在用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
表示你可以用 ?
来作为参数的占位符。