Buchstabe nach Umlauten immer groß - title() - Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
martinjo
User
Beiträge: 186
Registriert: Dienstag 14. Juni 2011, 20:03

Hallo,

ich importiere Verkäufe aus eBay in meine Warenwirtschaft, da viele Kunden zu faul sind bei der Adresse den ersten Buchstaben groß zu schreiben habe ich das bisher mit title() korrigiert. Sei ein paar Tagen hat eBay jedoch wieder etwas umgestellt, so dass die Header der CSV auf deutsch mit Umlauten sind, so dass ich mein System ändern musste.

Bisher ging ich so vor:

Code: Alles auswählen

ebay_sales_list_reader = csv.DictReader(open(file_import, "rb"),delimiter=';')
...
ec_name = csv_line["Buyer Fullname"].decode('latin-1').title()
Dort hatte ich keine Probleme mit den Buchstaben nach einem Umlaut.

Nun gehe ich so vor:

Code: Alles auswählen

ebay_sales_list_reader = csv.DictReader(codecs.open(file_import, "rb", encoding='latin-1'),delimiter=';')
...
ec_name = csv_line["Vollständiger Name des Käufers"].title()
Nun werden jedoch alle Buchstaben nach einem Umlaut groß geschrieben. Ich arbeite mit Python 2.7.

Anbei: Ich will weg von den CSV-Dateien und hin zu einer Anbindung über die eBay-API. Neue Verkäufe automatisch importieren; Wenn ein Teil in unserem Webshop verkauft wurde Bestand auch bei eBay anpassen; Artikel und Auktionen einstellen. Würde mich sehr über Angebote freuen (per Privatnachricht, gerne auch nur eMail-Adresse oder Telefonnummer mit Betreff senden für weiteren Kontakt).
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Das Problem sollte verschwinden wenn du .title() auf einen Unicode-String statt str anwendest.
Benutzeravatar
martinjo
User
Beiträge: 186
Registriert: Dienstag 14. Juni 2011, 20:03

Danke, ich hatte mal wieder vergessen, dass utf8 nicht gleiche unicode ist.
Antworten