用Python解析带引号的逗号分隔CSV文件
下面我有一串字符串,它代表从一个csv文件中提取的一行数据。每一列之间用逗号分隔,值用双引号包裹起来。用Python最简单的方法来提取每一列的值是什么呢?
"Mr","Bob","","Boberton","","President","","","","Blah, Inc. of Iowa","blah blah blah","","Grand Island","Hall County","NE","68801","7228","United States","308-111-1111","","","P.O. BOX 1111","","Grand Island","Hall County","NE","11111","1111","United States","","40.00000","-98.0000","Gasoline service stations","11111","1010101010","","","false","SINGLE_LOCATION","","","","","","","","","No","No","No","Owns","No","No","","","55.125905","","0.052369","","100","","100","0","","","1971","Low Risk","Convenience Stores & Truck Stops","1111111","1111111","111111","1111111"
上面的数据都是一大串字符串,需要把它分割成不同的列,这样我才能获取到每个值。我并不是在问怎么加载csv文件,这部分我已经搞定了。
1 个回答
16
Python有一个专门的模块可以处理这个问题:
http://docs.python.org/library/csv.html
import csv, sys
filename = 'some.csv'
with open(filename, 'rb') as f:
reader = csv.reader(f)
try:
for row in reader:
print row
except csv.Error, e:
sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))