如何使用Python查询sqlite3中的unicode字符串

时间:2013-03-23 14:40:58

标签: python unicode sqlite

假设我有一个unicode字符串u"Robinson Can\u00f3",并使用以下内容将该字符串存储在sqlite3数据库中:

cursor.execute('create table tb (name text)')
cursor.execute('insert into tb values (?)', str')

但是,如果我想从数据库中查询unicode字符串u“Robinson Can \ u00f3”,我什么也没得到。

cursor.execute("select * from tb where name = '%s'" % str)

但如果我查询另一个不包含unicode的unicode字符串,比如你的“Kobe Byrant”,我可以回来。

那么有人能告诉我如何使用Python来处理使用sqlite3的unicode吗?

非常感谢!

1 个答案:

答案 0 :(得分:3)

执行SQL代码时使用字符串插值。改为使用SQL参数:

cursor.execute("select * from tb where name = ?", (str,))

这适用于涉及参数的任何数据库交互,而不仅仅是SQLLite。