Lesen von CSV: Trennzeichen muss ein string sein, nicht in unicode
Hatte ich eine funktionierende routine (nach ein paar hilfsbereite Leute gab mir einige kritische Beratung in diese thread) erstellen von Modell-Instanzen aus einer CSV-Datei. Bis jetzt habe ich mit Python 2.7 und sicher gestellt, dass keine Sonderzeichen erschien überall. Derzeit muss ich verschieben auf Unicode. Ich fügte hinzu,
# -*- coding: utf-8 -*-
oben auf meine Dateien und alles wunderbar funktioniert (ich kann die Sonderzeichen in meinem code und Kommentare), speichern Sie die CSV-reader-routine. Nämlich die shell-Objekte zu diesem Artikel:
dataReader = csv.reader(open(filename), delimiter=';', quotechar='"')
war vor der Arbeit, mit
TypeError: "delimiter" must be string, not unicode
Nach der Lektüre einige ältere Fragen, die ich eingeschaltet, um
dataReader = csv.reader(open(filename), delimiter=str(u';'), quotechar=str(u'"'))
durchzusetzen, die Tatsache, dass das Trennzeichen wäre ein string, aber ich bin immer genau der gleiche Fehler. Was mache ich falsch?
- Versuchen Sie es mit :
delimiter=str(u';').encode('utf-8')
- Es funktioniert, ich danke Ihnen sehr. Könnten Sie mir einen Tipp geben, wie ich sollte, es gefunden zu haben? [Bitte posten Sie die 'Antwort' und ich werde es akzeptieren]
- Haben Sie nicht verschoben, um Python ist3.x?
- Nein. Wahrscheinlich sollte ich habe. 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Standard-Kodierung ist wahrscheinlich nicht die am besten geeignet ist.
Geben Sie die Codierung wie diese :
Mir passiert ist, als wechselte ich den code aus einer Datei ohne
from __future__ import unicode_literals
zu hatte es. (python 2.7)Änderte sich die Standard-Codierung für string-und Durcheinander mit den vorhandenen code.
Fixiert es durch das ändern von:
zu