我有以下格式的csv文件,
"1";"A";"A:"61 B & BA";"C"
以下是我读取csv文件的代码,
with open(path, 'rb') as f:
reader = csv.reader(f, delimiter = ';', quotechar = '"')
for row in reader:
print row
问题是,它打破了5个字段中的行,
['1', 'A', 'A:61 B &', ' BA', 'C']
虽然我期待我的输出,
['1', 'A', 'A:61 B & BA', 'C']
当我在csv文件中删除61 B之前的双引号时,我输出为,
[‘1′,’A’,’A:61 B& amp; BA’,’C’]这是完全没问题的,但是为什么即使定义了分隔符和quotechar,该字段中间的双引号也会引起问题?
您的csv文件无效.如果引号出现在(引用的)字符串中,则必须通过加倍来对其进行转义.
"1";"A";"A:""61 B & BA";"C"
会导致
['1', 'A', 'A:"61 B & BA', 'C']
CSV模块应该如何猜测分隔项目和项目中的引号之间的区别?