Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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-关于从mysql检索的结果_Python_Mysql_String - Fatal编程技术网

Python-关于从mysql检索的结果

Python-关于从mysql检索的结果,python,mysql,string,Python,Mysql,String,正如我们所看到的,每列前面都有一个“u”。我的数据库越来越差了 如何打印普通字符串?'u'表示unicode。您可以像处理字符串一样处理它们。如果你真的想要字符串,那么就做str(u'BUY') 更新:我把问题搞错了。下面的代码是针对MySQL数据库的,而不是针对mysqli的。很抱歉给你带来了困惑。不删除内容。 还有,只是一个建议。而不仅仅是使用返回元组作为结果集的游标。使用“dict”作为光标。它将为您提供一个易于访问的字典,字段名作为键,对应的值作为行。这更像是蟒蛇。可以这样做- >

正如我们所看到的,每列前面都有一个“u”。我的数据库越来越差了


如何打印普通字符串?

'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',)