在CSV文件中,字段中包含特殊字符(“)的问题

时间:2018-09-04 11:57:59

标签: python csv

当我想像这样分开两个字段时遇到问题:

PRODUCTION,"CATEG"

我正在这段代码中对其进行测试:

import csv
with open(list_files[2]) as csvfile:
    dialect = csv.Sniffer().sniff(csvfile.read())
    csvfile.seek(0)
    reader = csv.reader(csvfile, dialect)
    for row in reader:
        print (row)

我得到了:

['PRODUCTION,"CATEG"']

代替

['PRODUCTION','"CATEG"']

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

好像嗅探器犯了一个错误。打印reader = csv.reader(csvfile, dialect, delimiter=",") 会得到什么?

可以使用

{{1}}

代替?

答案 1 :(得分:0)

CSV RFC声明要包含可能的值(不必),您应该将整个内容用引号引起来。

例如,输入PRODUCTION,"foo,bar"应该解析为['PRODUCTION', 'foo,bar']而不是['PRODUCTION', '"foo', 'bar"']

您使用的CSV库正在正确解析文件。要在CSV文件中包含文字引号,您需要编写两个引号字符,因此必须将输入更改为:

PRODUCTION,""CATEG""

或手动解析它,而不是将其解析为CSV。