簡體   English   中英

Python CSV DictReader問題,其中帶有逗號的字段

[英]Python CSV DictReader issue with fields with commas inside

我正在嘗試使用DictReader解析帶有標題的CSV文件。 碰巧其中有一些帶有逗號的字段值。 這些逗號不應用作分隔符。 僅將引號外的逗號用作分隔符。 請讓我知道,我該如何實現。

假設CSV文件是這樣的:

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

我的示例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類的實例(如文檔建議)來設置諸如Dialect.delimiter之類的參數,然后可以將其分配給方言參數。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM