[英]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.