2

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

代码:

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

谢谢

4

1 回答 1

2

字符串上的u前缀意味着它是一个Unicode 字符串,你仍然有一个预期的两元素元组。

By default the sqlite3 module returns text as Unicode strings. If you want to receive byte strings encoded in utf-8 instead, you can set the connection's text_factory attribute to str.

于 2012-10-25T16:22:51.790 回答