I need to read a CSV file which has fields that have a comma, so I have double quoted the fields which contains commas, such as:
1, "text1,text2", "text3, text4", a, b, c
But when I try to read the file in Python I get the fields separated by the commas, as following:
row[0] = 1
row[1] = text1
row[2] = text2
row[3] = text3
row[4] = text4
row[5] = a
row[6] = b
row[7] = c
I am reading the CSV file with the following code:
info = csv.reader(open('./info.csv'))
for row in info :
print row[0] + " * " + row[1] ...
Is it possible to read double quoted fields which contains a comma?
解决方案
The Python csv module actually does support quoted fields, even by default. Your problem here is that Python by default does not skip the space, so you need to use skipinitialspace=True.
>>> s = StringIO.StringIO('1, "text1,text2", "text3, text4", a, b, c')
>>> list(csv.reader(s, skipinitialspace=True))
[['1', 'text1,text2', 'text3, text4', 'a', 'b', 'c']]