python sqlite查询中的命名参数

时间:2015-04-16 21:14:44

标签: python sqlite

我正在尝试为sqlite构建一个参数化查询,我知道我可以这样做:

cur.execute('INSERT INTO test ("name", "age") VALUES (:some_name, :some_age);', 
            {"some_name": "Joe", "some_age":45})

但是,我有一个字典,键中有空格。我无法找到有关命名参数的合法令牌的任何信息,并且似乎无法提出任何有效的组合。我运气不好 - 命名参数中没有空格而且无法逃脱它们?

1 个答案:

答案 0 :(得分:0)

参数名称必须是有效的标识符;仅由字母,数字和下划线组成。

所以,不,空格在这里不起作用。

Python在这里将参数处理委托给SQLite C API,正是这个API设置了这些限制;见Binding Values To Prepared Statements

  

VVV代表字母数字标识符