python:split()也会引用引用的值

时间:2012-06-14 22:51:54

标签: python

我有一个像

这样的地址
line = 12345 North Drive,,"Palm Retreat, CO",CO,92261  

当我分手时,我得到了

line.split(",") 
['12345 North Drive', '', '"Palm Retreat', ' CO"', 'CO', '92261']  

我想要的只是

'12345 North Drive', '', '"Palm Retreat CO"', 'CO', '92261']  

我在这里失踪的是什么?

2 个答案:

答案 0 :(得分:4)

split()按预期工作;它不关心报价。您可能需要查看csv模块以及StringIO:您将字符串放在StringIO对象中(使其看起来像文件)然后传递给它到csv.reader。像这样:

import csv
from cStringIO import StringIO

s = "12345 North Drive,,\"Palm Retreat, CO\",CO,92261"
s = StringIO(s)
reader = csv.reader(s, delimiter=",")
for row in reader:
    print row

更新:实际上,由于csv.reader适用于任何产生行(而不仅仅是文件)的迭代,因此您只需将行列表传递给csv.reader而无需经过StringIO位。

答案 1 :(得分:0)

您应该使用csv模块来处理CSV数据。