使用列表和正常值

时间:2013-01-09 20:33:50

标签: python sql arrays sqlite

所以,我试图做一个SQLite准备语句,如下所示:

定义

c.execute('''CREATE TABLE IF NOT EXISTS tab (
    _id integer PRIMARY KEY AUTOINCREMENT,
    obj text NOT NULL,
    val int NOT NULL
    ) ;''')

我想执行以下准备好的声明:

list_of_vars=['foo','bar']
statement = "SELECT * FROM tab WHERE obj IN ({0}) AND val BETWEEN ? AND ?".format(', '.join(['?' * len(list_of_vars)]))

我现在解决这个问题非常难看,我正在寻找一种更优雅的方式来做这件事......

vals=list_of_vars
vals.append(0)
vals.append(100)
c.execute(statement, vals)

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以非常轻松地连接列表:

c.execute(statement, list_of_vars + [0, 100])