Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何阻止sqlite返回unicode符号_Python_Sqlite - Fatal编程技术网

Python 如何阻止sqlite返回unicode符号

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'

我可能弄错了,但自从我从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'x',u'x',u'x')
是一个元组。该元组包含四个元素。其中一个是整数,其他三个是unicode字符串,如
u
所示

如果一次打印整个元组,它将如上面所示。但这是一件愚蠢的事情,因为你可能真的想对元组的内容做点什么,而不是元组本身

如果您打印了结果[1],您会看到输出只是
x
:实际打印时不会显示
u
。这是正确的行为


如果你使用你发布的代码,一旦你从你的数据存储中检索到一个非ASCII值——例如,某个人的名字中包含一个重音字符——事情就会大错特错。

你确实意识到“u”只是一个字符串前缀和打印输出的一部分,而不是实际数据的一部分,对吗?我是这么想的,然而,当它不断出现在我打印到屏幕上的任何东西上时,我感到沮丧