从python中的SQLite数据库中检索值的一些错误

时间:2012-10-25 16:21:03

标签: python sqlite

我正在尝试在数据库中插入元组。它不会在代码中给出任何错误。但输出包含一些虚拟字符,同时打印整行。输出也会在帖子中复制。请帮我弄清楚代码中的错误。这是一个大型项目的虚拟代码。

代码:

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'。

由于

1 个答案:

答案 0 :(得分:2)

字符串上的u前缀表示它是Unicode string,您仍然可以按预期使用双元素元组。

默认情况下,sqlite3模块将文本作为Unicode字符串返回。如果您想接收以utf-8编码的字节字符串,可以将连接的text_factory属性设置为str