Seite 1 von 1

Anführungszeichen in csv-Datei

Verfasst: Sonntag 14. Oktober 2007, 11:46
von joker21
Hallo,

ich füge mittels

Code: Alles auswählen

result.append(value)
Daten einer Liste hinzu, die dann mittels

Code: Alles auswählen

writer = csv.writer(csv_file)
writer.writerows(extract(source))
in eine csv-Datzei geschrieben werden.

Nun möchte ich gerne, dass die Daten alle in Anführungszeichen stehen, da z.T. Kommas in den Daten sind (und diese als csv-Trennzeichen sonst missverstanden werden). Das Ergebnis soll also etwa so aussehen:
"data1", "data2, und noch was"

Wenn ich aber die Daten einfach in Anführüngszeichen setze

Code: Alles auswählen

result.append('"' + value + '"')
sind statt einem immer drei Anführungszeichen vor und nach jeden Daten:
"""data1""", """data2, und noch was"""

Die Lösung ist wahrscheinlich simple, man muss sie nur wissen...

Gruß
Jochen

Verfasst: Sonntag 14. Oktober 2007, 11:59
von Rebecca
Warum nimmst du nicht ein anderes Trennzeichen als ein Komma?

Re: Anführungszeichen in csv-Datei

Verfasst: Sonntag 14. Oktober 2007, 12:06
von gerold
joker21 hat geschrieben:Die Lösung ist wahrscheinlich simple, man muss sie nur wissen...
Hallo Jochen!

Stimmt ;-)

Code: Alles auswählen

>>> import csv
>>> from StringIO import StringIO
>>> f = StringIO()
>>> writer = csv.writer(f, quoting = csv.QUOTE_NONNUMERIC)
>>> writer.writerow([1, 2.0, "3", "hallo"])
>>> f.getvalue()
'1,2.0,"3","hallo"\r\n'
>>>
``csv.QUOTE_NONNUMERIC`` funktioniert aber erst seit Python 2.5 korrekt. Python 2.4 unterscheidet nicht korrekt zwischen Zahl und Text. Aber das ist in den meisten Fällen zum Glück egal. ;-)

mfg
Gerold
:-)

Verfasst: Sonntag 14. Oktober 2007, 12:17
von joker21
Ja, das war's schon! Danke schön!