Python, Mysqldb und Unicode
-
26-10-2019 - |
Frage
Ich habe Probleme, Unicode -Werte aus MySQL -Abfragen herauszuholen.
So mache ich es jetzt:
>>> from MySQLdb import connect
>>> from MySQLdb.cursors import DictCursor
>>> con = connect(
passwd = "****",
db = 'my_db',
user = "db_user",
host = "localhost",
cursorclass = DictCursor,
use_unicode=True,
charset="utf8"
)
>>> cursor = con.cursor ()
>>> cursor.execute (u'Select * from basic_applet')
>>> res = cursor.fetchall()
>>> print(res)
({'Title_de': 'test title', .... })
>>> type(res[0]['Title_de'])
<type 'str'>
Wie Sie sehen können, gibt es keine Unicode zurück.
In meiner Tabellenstruktur wird title_de als unicode eingestellt.
IDbasic_applet int(10)...
Title_de varchar(75) utf8_bin
Ich weiß wirklich nicht, was ich falsch mache, jede Hilfe wäre wirklich willkommen.
Danke im Voraus,
Simon
Lösung
Was Sie bekommen, ist ein Bytestring. Sie müssen es dekodieren, um eine Unicode -Zeichenfolge zu erhalten. Es kommt im Grunde darauf an:
>>> byte_string = 'F\xe9vrier'
>>> byte_string.decode('UTF-8')
u'Février'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow