Seite 1 von 1

pickle.load() encodieren?

Verfasst: Mittwoch 12. August 2009, 15:57
von krisi12345
Wenn man Unicode Zeichen mit pickle.dump() speichert/öffnet werden die Unicode zeichen nicht/dekodiert angezeigt.
Ich habe versucht den geöffneten String mit encode zu enkodieren aber das hat nicht so recht geklappt. :?
Wahrscheinlich habe Ich die falsche Kodierung benutzt.
Kann Mir einer helfen?

Verfasst: Mittwoch 12. August 2009, 16:43
von tordmor
wenn Du ein unicode object mit pickle.dump speicherst und mit pickle.load wieder einlädst, solltest Du wieder ein unicode object bekommen. Kein Grund hier irgend etwas zu en-/dekodieren.

Code: Alles auswählen

>>> u = u"äöüß"
>>> type(u)
<type 'unicode'>
>>> print u
äöüß
>>> with open('test.pickle', 'w') as f:
...     pickle.dump(u, f)
...
>>> with open('test.pickle', 'r') as f:
...     v = pickle.load(f)
...
>>> v == u
True
>>> type(v)
<type 'unicode'>
>>> print v
äöüß

Verfasst: Mittwoch 12. August 2009, 16:48
von krisi12345
O.K. danke! :D

Verfasst: Mittwoch 12. August 2009, 21:06
von sma
benutzt man auch noch "rb" und "wb" statt "r" und "w", funktioniert es sogar verlässlich unter Windows.

Stefan