Python 如何阻止sqlite返回unicode符号
我可能弄错了,但自从我从3.2回溯到Python2.7后,我注意到sqlite3正在做一些我不喜欢的事情 当我使用cursor.fetch方法时,它将从表中返回(1,x,x,x) 但在2.7中,它返回(1,u'x',u'x',u'x') 我如何让它停止在我的查询中返回“u”?我需要将返回值存储在变量中,解决这个问题有点烦人 编辑:通过一点研究,我找到了一种方法 db.text\u factory=str 如果有更好的方法,请告诉我,因为我真的不知道这种方法的作用,我讨厌改变错误的东西Python 如何阻止sqlite返回unicode符号,python,sqlite,Python,Sqlite,我可能弄错了,但自从我从3.2回溯到Python2.7后,我注意到sqlite3正在做一些我不喜欢的事情 当我使用cursor.fetch方法时,它将从表中返回(1,x,x,x) 但在2.7中,它返回(1,u'x',u'x',u'x') 我如何让它停止在我的查询中返回“u”?我需要将返回值存储在变量中,解决这个问题有点烦人 编辑:通过一点研究,我找到了一种方法 db.text\u factory=str 如果有更好的方法,请告诉我,因为我真的不知道这种方法的作用,我讨厌改变错误的东西 (1,u'
(1,u'x',u'x',u'x')
是一个元组。该元组包含四个元素。其中一个是整数,其他三个是unicode字符串,如u
所示
如果一次打印整个元组,它将如上面所示。但这是一件愚蠢的事情,因为你可能真的想对元组的内容做点什么,而不是元组本身
如果您打印了结果[1],您会看到输出只是x
:实际打印时不会显示u
。这是正确的行为
如果你使用你发布的代码,一旦你从你的数据存储中检索到一个非ASCII值——例如,某个人的名字中包含一个重音字符——事情就会大错特错。你确实意识到“u”只是一个字符串前缀和打印输出的一部分,而不是实际数据的一部分,对吗?我是这么想的,然而,当它不断出现在我打印到屏幕上的任何东西上时,我感到沮丧