Seite 1 von 1

Unicode und Listen

Verfasst: Montag 29. März 2010, 11:16
von rbv
Hallo Forum

Ich habe hier ein kleines Unicode-Problem:
eine utf8-Datei in der sich japanischer Text befindet

Code: Alles auswählen

dictionary = codecs.open( "liste", "r", "utf-8" ) 
for line in dictionary:
        line_array=line.split(" ",1)
        print line_array[0], line_array[1]
        liste.append([line_array[0], line_array[1]])
Das print gibt zb "日 ひ" aus.

"print liste" jedoch "[[u'\u65e5', u'\u3072\n']]"

"for j in liste: print j[0]" gibt dann wieder "日"

Könnt Ihr mir erklären warum die zeite Ausgabe so merkwürdig ist?

Mit verwirrten Grüßen
Roland

Verfasst: Montag 29. März 2010, 11:32
von Hyperion
Was Du da siehst ist wohl die Darstellung der __repr__-Funktion der Objekte innerhalb der Liste. Insofern wird da wohl die __str__-Funktion der list-Implementierung diese Aufrufen, anstatt der __str__-Funktionen der inneren Objekte. Vermutlich aus Sicherheitsgründen, damit beim Ausgeben der Objekte keine Exception auftritt.

Verfasst: Montag 29. März 2010, 18:02
von rbv
Wenn das so gewollt ist, ist ja alles gut.

Hab Dank
Roland