Anfänger: Varianle(float) als String einlesen

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

kann ich einen Variable direkt beim einlesen in einen String umwandeln?

Hintergrund ist, dass ich UnicodeWriter (http://docs.python.org/library/csv.html#examples) verwenden muss um meinen Produktnamen mit Umlauten für eine CSV einzulesen. Dann kann ich allerdings den Produktcode nicht mehr schreiben.

Code: Alles auswählen

UnicodeWriter.writerow([product.code, product.name])
-> AttributeError: 'float' object has no attribute 'encode'

Code: Alles auswählen

csv-writer.writerow([product.code, product.name])
 -> UnicodeEncodeError: 'ascii' codec can't encode character
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Du hast 3 Moeglichkeiten:
1. Du passt den Code von `UnicodeWriter` an.
2. Du fuetterst `UnicodeWriter` nur mit Strings, d.h. du formatierst den Produkt-Code (ein float Produkt-Code?!).
3. Du verwendest direkt `csv.writer` und fuetterst ihn mit korrekt kodierten Strings (d.h. keine `unicode` Objekte mehr, sondern schon Byte`string`s).
Benutzeravatar
martinjo
User
Beiträge: 186
Registriert: Dienstag 14. Juni 2011, 20:03

Danke, ich habe mich für die zweite Möglichkeit entschieden (die einzige wo ich hinbekomme xD). Es war übrigens die Gewichtsangabe, nicht die Artikelnummer.
Antworten