mabue88

Excel-Datei mit dem xlrd-Modul auslesen - String-Encoding-Problem

Hallo,

ich lese mit dem xlrd-Modul den Inhalt von Excel-Dateien aus.
Nun enthielt eine Zelle einen Text mit Umlauten, wodurch ein Fehler auftrat:

'ascii' codec can't encode character u'\xdc' in position 23: ordinal not in range(128)  

Kann mir jemand sagen, wie ich das Encoding in Python entsprechend anpasse, dass ich solche Sonderzeichen einlesen kann?

Danke
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 274601

Url: https://administrator.de/forum/excel-datei-mit-dem-xlrd-modul-auslesen-string-encoding-problem-274601.html

Ausgedruckt am: 12.05.2025 um 14:05 Uhr

114757
114757 15.06.2015 aktualisiert um 12:45:32 Uhr
Goto Top
Versuchs mal mit Angabe des Encodings:
xlrd.open_workbook('Mappe1.xls',encoding_override="cp1252")  
https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html?p=4966

Und folgenden Header in deinem Python Code benutzen
#!/usr/bin/python
# -*- coding: UTF-8 -*-

Gruß jodel32

p.s.
https://docs.python.org/2/howto/unicode.html#the-unicode-type
https://docs.python.org/2/howto/unicode.html
mabue88
mabue88 16.06.2015 um 10:04:37 Uhr
Goto Top
Hallo jodel,

im Header meines Python-Codes habe ich bereits die beiden Zeilen aufgeführt.
Ich habe jetzt aber gemerkt, dass das Fehler nicht im Einlesen aus der Excel-Datei kommt, sondern wohl eher bei mir face-wink.

Der ganze Tabelleninhalt wird innerhalb einer Klasse eingelesen und wird in eine Array-Dictionary-Kombination geschrieben.
Mich hat nun irritiert, dass wenn ich den gesamten Array-Inhalt per 'print' ausgegeben habe, die Sonderzeichen nicht korrekt dargestellt wurden.

print my_table_array

Sobald ich aber die einzelnen Zelleinhalte direkt ausgebe passt das Encoding:

for row in my_table_array:
	for column in row:
		print row[column]


Vielleicht kannst du mir sagen, warum Sonderzeichen bei der Verwendung der ersten Methode nicht passt.

Danke

Gruss
mabue