Python-关于从mysql检索的结果
正如我们所看到的,每列前面都有一个“u”。我的数据库越来越差了Python-关于从mysql检索的结果,python,mysql,string,Python,Mysql,String,正如我们所看到的,每列前面都有一个“u”。我的数据库越来越差了 如何打印普通字符串?'u'表示unicode。您可以像处理字符串一样处理它们。如果你真的想要字符串,那么就做str(u'BUY') 更新:我把问题搞错了。下面的代码是针对MySQL数据库的,而不是针对mysqli的。很抱歉给你带来了困惑。不删除内容。 还有,只是一个建议。而不仅仅是使用返回元组作为结果集的游标。使用“dict”作为光标。它将为您提供一个易于访问的字典,字段名作为键,对应的值作为行。这更像是蟒蛇。可以这样做- >
如何打印普通字符串?'u'表示unicode。您可以像处理字符串一样处理它们。如果你真的想要字符串,那么就做
str(u'BUY')
更新:我把问题搞错了。下面的代码是针对MySQL数据库的,而不是针对mysqli的。很抱歉给你带来了困惑。不删除内容。
还有,只是一个建议。而不仅仅是使用返回元组作为结果集的游标。使用“dict”作为光标。它将为您提供一个易于访问的字典,字段名作为键,对应的值作为行。这更像是蟒蛇。可以这样做-
>>> c = conn.cursor()
>>> c.execute('select * from stocks order by price')
>>> for row in c:
... print row
...
(u'2006-01-05', u'BUY', u'RHAT', 100, 35.14)
(u'2006-03-28', u'BUY', u'IBM', 1000, 45.0)
而不是
cursor = conn.cursor(MySQLdb.cursors.DictCursor)
其中conn是从
MySQLdb.connect()
方法获取的连接对象将行元组中的unicode字符串转换为常规字符串:
cursor = conn.cursor()
我觉得您不太习惯使用Unicode。从()开始: “没有纯文本这种东西。 如果你有一个字符串,在内存中,在 文件,或在电子邮件中,您已 要知道它是什么编码或者你 无法对其进行解释或显示 用户正确。” 文本前面的u表示您正在处理
unicode
对象,而不是string
对象。因此,如果对unicode对象进行字符串表示,则u将始终显示
要删除u,需要使用特定编码对unicode
对象进行编码。例如,如果您正在使用具有utf-8编码的控制台,则希望创建数据的utf-8
编码字符串表示形式
Unicode对象可以使用encode
进行编码。例如:
for row in c:
print tuple(str(x) for x in row)
应该导致
print row[0].encode('utf-8')
…如果您的控制台/终端使用相同的编码(utf-8)
类似地,您可以遍历元组:
2006-01-05
我绝对、肯定地建议,甚至可能坚持让你读一读。开始使用Unicode可能很困难,但当你掌握了这些概念后,它将成为你的新朋友,你看到的
u
越多,你就会越开心。相信我。好吧,这太旧了,但我在使用Python3时遇到了同样的问题。我在我的连接块中添加了use\u unicode=False
:
for row in c:
print tuple(x.encode('utf-8') for x in row)
结果:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="databasename",
use_unicode=False
)
cursor = mydb.cursor()
cursor.execute("SELECT name FROM Server")
for name in cursor:
print(name)
我找到了答案,
字符编码
段落。嘿!只需执行str()。也没有“,”。str(u,cols)肯定是一个语法错误。str(u'mystring'),u在字符串文本之前。我使用conn=connect('db')cur=conn.cursor()来获取我的conndo这个元组(str(val)表示cols中的val)。尝试了元组(str(val)表示cols中的val)。什么都没变……救命啊~~~~不,每个字段前面都有“u”/``
('Server1',)