2016-11-14 78 views
0

我試圖解析CSV文件的標題使用DictReader。正好有一些字段值帶有逗號。這些逗號不應該用作分隔符。只有引號外的逗號應該用作分隔符。 請讓我知道,我該如何做到這一點。Python的CSV DictReader問題與內部的逗號字段

假設,CSV文件是這樣的:

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

回答

0

在我的例子CSV文件中的數據是這樣的

   field1, field2, field3 
       "2012,A,", "F","1" 
       "2013,B,", "M","2" 
       "2014,C,", "M","3" 
       "2015,D,", "M","4" 
我用這個代碼

   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']) 

以下是我得到的輸出。

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

您還可以通過創建方言類的一個實例(由文檔的建議),然後你可以把它分配給方言參數設置的參數,如Dialect.delimiter

參考: - https://docs.python.org/2/library/csv.html#csv.reader