我已经进行了搜索,并找到了一些应该可行的解决方案,但由于某种原因,我并没有为我工作。以下是我正在使用的示例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或强大。我做错了什么?