我正在尝试在数据库中插入元组。它不会在代码中给出任何错误。但输出包含一些虚拟字符,同时打印整行。输出也会在帖子中复制。请帮我弄清楚代码中的错误。这是一个大型项目的虚拟代码。
代码:
import sqlite3 as sql
def foo():
db = sql.connect('test.db')
db.execute('drop table if exists test')
db.execute('create table test (t1 text, i1 int)')
str = """insert into test(t1,i1) values ('one',1 ) """
db.execute(str)
db.execute('insert into test(t1,i1) values (?, ?)', ('two',2))
db.commit()
cursor = db.execute('select * from test')
for row in cursor:
print row
输出:
(u'one', 1)
(u'two', 2)
如输出所示,代码的预期输出是两个元素的元组。相反,输出中有一些字符'u'。
由于
答案 0 :(得分:2)
字符串上的u
前缀表示它是Unicode string,您仍然可以按预期使用双元素元组。
默认情况下,sqlite3模块将文本作为Unicode字符串返回。如果您想接收以utf-8编码的字节字符串,可以将连接的text_factory
属性设置为str
。