无法正确解析由逗号分隔的CSV,但包含标题,并且字段用双引号括起,但也包含逗号

时间:2016-03-10 01:07:41

标签: python python-2.7 csv

我已经进行了搜索,并找到了一些应该可行的解决方案,但由于某种原因,我并没有为我工作。以下是我正在使用的示例CSV:

"Org. Code","Hubspot Ref","Company Name","Contact First Name","Contact Last Name","Job Title","Address","City","Phone","Email","Last Update"
"2h34h234h","12345678","A Random Company","John","Smith","Developer","300 PARK AVE SOUTH, 4TH FL","NEW YORK","+123456789","john.smith@random.org","10/03/2016 12:00"

我试图用这段代码解析它:

with open(os.path.basename(theCSV),"r") as f:
    reader = csv.reader(f)
    data = list(reader)

    for row in range(0, len(data)):

目前正在做两件不受欢迎的事情: 1)它读取标题行, 2)地址字段中的逗号被解释为分隔符而不是部分字段值。

现在,关于SO的研究告诉我,我上面所做的,应该改成这样的事情:

with open(os.path.basename(theCSV),"r") as f:
    reader = csv.reader(f, quoting=csv.QUOTE_ALL)
    next(reader)

    for row in reader:

这会引发错误:TypeError: list indices must be integers, not list。然后,我尝试用TypeError和第一行问题解决这个问题:

with open(os.path.basename(theCSV),"r") as f:
    reader = csv.reader(f, quoting=csv.QUOTE_ALL)
    data = list(reader)
    outRange = len(data) + 1

    for row in range(1, outRange):

这仍然作为分隔符在字段值中以逗号形式运行,更不用说它可能不是非常pythonic或强大。我做错了什么?

0 个答案:

没有答案