2016-11-14 1 views
0

Ich versuche, eine CSV-Datei mit Headern unter Verwendung DictReader zu analysieren. Es gibt einige Feldwerte mit Kommas darin. Diese Kommata sollten nicht als Trennzeichen verwendet werden. Nur Kommas außerhalb der Anführungszeichen sollten als Trennzeichen verwendet werden. Bitte lassen Sie mich wissen, wie kann ich das erreichen.Python CSV DictReader Problem mit Feldern mit Kommas innerhalb

Nehmen wir an, CSV-Datei ist wie folgt:

field1, field2 
"sdsad,asdsa","asdasd" 

Antwort

0

die Daten in meinem Beispiel CSV-Datei ist diese

   field1, field2, field3 
       "2012,A,", "F","1" 
       "2013,B,", "M","2" 
       "2014,C,", "M","3" 
       "2015,D,", "M","4" 

ich diesen Code verwendet

   with open('names.csv') as csvfile: 
        reader = csv.DictReader(csvfile, fieldnames=("field1", "field2", "field3"), restkey=None, restval=None, dialect='excel') 
        for row in reader: 
         print(row['field1'],row['field2'],row['field3']) 

Hier finden Sie die Ausgabe, die ich bekam.

  ('field1', ' field2', ' field3') 
      ('2012,A,', ' "F"', '1') 
      ('2013,B,', ' "M"', '2') 
      ('2014,C,', ' "M"', '3') 
      ('2015,D,', ' "M"', '4') 

Sie können auch die Parameter wie Dialect.delimiter durch eine Instanz von Dialect-Klasse erstellen (wie sie in der Dokumentation vorgeschlagen), und dann können Sie es auf dem Argument Dialekt zuweisen.

Referenz: -

Verwandte Themen