我有一个字符串,我想将其转换为一个列表,其中每个元素都以逗号分隔。
例如'test1,"test2,test3",test4'
将成为['test1', 'test2 test3', 'test4']
请注意,我不想拆分test2
和test3
答案 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