如何从字符串中获取双重值

时间:2016-05-30 07:07:51

标签: python

我有一个字符串,我想将其转换为一个列表,其中每个元素都以逗号分隔。

例如'test1,"test2,test3",test4'将成为['test1', 'test2 test3', 'test4']

请注意,我不想拆分test2test3

3 个答案:

答案 0 :(得分:2)

与TigerhawkT3的答案一样,我也使用csv.reader,但还有2个参数。

import csv

src_text = 'test1,"test2,test3",test4'
r = csv.reader([src_text], delimiter= ',', quotechar='"')
converted_list = next(r)

输出

>>> print converted_list
['test1', 'test2,test3', 'test4']

答案 1 :(得分:1)

你所拥有的是CSV文件中的一行。使用csv.reader

>>> import csv
>>> lines = ['test1,"test2,test3",test4', 'testa,"testb,testc",testd']
>>> r = csv.reader(lines)
>>> list(r)
[['test1', 'test2,test3', 'test4'], ['testa', 'testb,testc', 'testd']]

答案 2 :(得分:0)

您可以先split() ",用空格替换逗号,strip()尾随空格,然后删除空元素(当双引号结束时)。这将需要相当多的迭代。看看@ TigerhawkT3的答案。

def split_string(s):
    ret = s.split('"')
    ret = [ " ".join(x.split(",")) for x in ret ]
    ret = [x.strip() for x in ret]
    ret = [ x for x in ret if x != ""]

    return ret