Seite 1 von 1

Excel Dateien auslesen: 'ascii' codec can't encode character

Verfasst: Samstag 9. Mai 2015, 21:15
von Schlangenbändiger
Hey bin neu hier und komme direkt zur Sache:
Wir machen in der Schule grad ein Projekt in dem wir aus einer Excel-Datei mit Python Zellen auslesen und diese in eine Html-Website schreiben und beim ausführen des Programms bekomme ich bei folgender Zeile die Fehlermeldung: TypeError: expected a character buffer object
Zeile: ziel.write(sheet.Cells(zeile,spalte).Value)

Dies liegt wie ich herausgefunden habe an dem Typ der Zelle. Deswegen habe ich versucht diese umzuwandeln:
ziel.write(str(sheet.Cells(zeile,spalte).Value))
Doch dies gab mir wiederum folgende Fehlermeldung: UnicodeEncodeError: 'ascii' codec can't encode character u'\xdf' in position 13: ordinal not in range(128)

ich bin ratlos und hoffe auf schnelle Antwort :?:

Aaron

Re: Excel Dateien auslesen: 'ascii' codec can't encode chara

Verfasst: Samstag 9. Mai 2015, 21:28
von Sirius3
@Schlangenbändiger: Wie hast Du denn bisher HTML geschrieben? Jedenfalls nicht mit Hilfe einer Templateengine. Deshalb mußt Du Dich um einiges selbst kümmern. Für das Problem solltest Du Dich mit Character-Encoding auseinandersetzen. Du mußt die Excel-Text-Zellen in das selbe Encoding konvertieren wie Du in der HTML-Datei angegeben hast.

Re: Excel Dateien auslesen: 'ascii' codec can't encode chara

Verfasst: Sonntag 10. Mai 2015, 13:34
von Schlangenbändiger
Danke für die schnelle Antwort habs gestern aber nicht mehr gesehen. Habe die html-Datei in utf-8 kodiert und jetzt das hier ausprobiert:
ziel.write(sheet.Cells(zeile,spalte).Value.encoding("utf-8"))
Darauf folgt die Fehlermeldung: 'unicode' object has no attribute 'encoding'

Re: Excel Dateien auslesen: 'ascii' codec can't encode chara

Verfasst: Sonntag 10. Mai 2015, 13:56
von Sirius3
@Schlangenbändiger: Objekte haben ja auch in Python nicht immer die Methoden, die so ausprobiert werden, sondern es gibt eine Dokumention, da steht drin, welche sie tatsächlich haben.

Re: Excel Dateien auslesen: 'ascii' codec can't encode chara

Verfasst: Montag 11. Mai 2015, 08:39
von Hyperion
Sirius3 hat geschrieben:Für das Problem solltest Du Dich mit Character-Encoding auseinandersetzen. Du mußt die Excel-Text-Zellen in das selbe Encoding konvertieren wie Du in der HTML-Datei angegeben hast.
Für das eigentliche Problem muss er nur ein Encoding wählen, welches die Zeichen des Excell-Dokuments repräsentieren kann. Ob das nun mit dem Encoding in der Zieldatei übereinstimmt, ist letztlich unerheblich für das Vermeiden des Fehlers - sinnvoller Weise will man im Zieldokument natürlich keinen Byte-Müll stehen haben und sollte innerhalb einer HTML-Datei keine Encodings mischen ;-)

Re: Excel Dateien auslesen: 'ascii' codec can't encode chara

Verfasst: Montag 11. Mai 2015, 08:59
von Sirius3
@Hyperion: letzlich ist es egal, ob die Zeichen repräsentiert werden können, da man mit "ignore" ja auch ungemappte Zeichen in lustige ? umwandeln kann. Trotzdem löst das nicht das Problem sondern nur die Fehlermeldung verschwindet.

Re: Excel Dateien auslesen: 'ascii' codec can't encode chara

Verfasst: Montag 11. Mai 2015, 09:26
von Hyperion
Sirius3 hat geschrieben:@Hyperion: letzlich ist es egal, ob die Zeichen repräsentiert werden können, da man mit "ignore" ja auch ungemappte Zeichen in lustige ? umwandeln kann.
Stimmt. Das wäre eine alternative Lösung.
Sirius3 hat geschrieben: Trotzdem löst das nicht das Problem sondern nur die Fehlermeldung verschwindet.
Und genau der Fehler *ist* ja das Problem ;-)

Re: Excel Dateien auslesen: 'ascii' codec can't encode chara

Verfasst: Montag 11. Mai 2015, 09:33
von Sirius3
@Hyperion: der Fehler ist ein Symptom des Problems :P. Aber da der OP ja geschrieben hat, dass er utf8 als HTML-Encoding eingestellt hat, ist das Problem so oder so gelöst.