python: split() 也拆分引用值

标签 python

<分区>

我有一个像这样的地址

line = 12345 North Drive,,"Palm Retreat, CO",CO,92261  

当我 split 时我得到

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

我想要的是

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

我在这里缺少什么?

最佳答案

split() 正在按预期工作;它不关心引号。您可能想结合 StringIO 查看 csv 模块:您将字符串放在 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 位。

关于python: split() 也拆分引用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11042421/

相关文章:

python - 如何在每第 n 个项目之后创建列表列表

python - 我们如何定义 Keras 的提前停止以在每个批处理(不是整个纪元)后进行检查

python - 将 FreeTDS 与 Django 结合使用

python - RNN : Get prediction from a text input after the model is trained

c++ - 将文档定义转换为强大类的类似 IDL 的解析器?

python - 使用elasticsearch-dsl的delete方法时版本冲突

python - 在Python中迭代列表和删除元素时的奇怪行为

python - 类型错误 : post() takes 1 positional argument but 2 were given

python - pandas DataFrame 将值作为元组进行字典

python - 仅当远程文件比本地副本更新时,如何使用 boto 从 S3 下载文件?