当我想像这样分开两个字段时遇到问题:
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"']
有什么主意吗?
答案 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。