1

我有一个地址

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']  

我在这里想念什么?

4

2 回答 2

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位。

于 2012-06-14T22:55:49.173 回答
0

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

于 2012-06-14T22:54:55.363 回答