Python CSV DictReader问题,里面有逗号的字段

时间:2016-11-14 23:09:07

标签: python csv

我尝试使用 DictReader 解析带有标题的CSV文件。碰巧有一些带有逗号的字段值。这些逗号不应用作分隔符。只有引号之外的逗号才能用作分隔符。 请让我知道,我怎样才能做到这一点。

我们假设,CSV文件是这样的:

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

1 个答案:

答案 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 论点。

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

相关问题