我尝试使用 DictReader 解析带有标题的CSV文件。碰巧有一些带有逗号的字段值。这些逗号不应用作分隔符。只有引号之外的逗号才能用作分隔符。 请让我知道,我怎样才能做到这一点。
我们假设,CSV文件是这样的:
field1, field2
"sdsad,asdsa","asdasd"
答案 0 :(得分: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类的实例(如文档所示)设置 Dialect.delimiter 等参数,然后将其分配给 dialect 论点。