Python 如何从字符串中获取双quouted值

Python 如何从字符串中获取双quouted值,python,Python,我有一个字符串,我想把它转换成一个列表,其中每个元素都用逗号分隔 例如'test1,“test2,test3”,test4'将变成['test1','test2 test3','test4'] 请注意,我不想拆分test2和test3您拥有的是CSV文件中的一行。使用csv.reader >>> import csv >>> lines = ['test1,"test2,test3",test4', 'testa,"testb,testc",testd'] &

我有一个字符串,我想把它转换成一个列表,其中每个元素都用逗号分隔

例如
'test1,“test2,test3”,test4'
将变成
['test1','test2 test3','test4']


请注意,我不想拆分
test2
test3

您拥有的是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']]

您拥有的是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']]
您可以通过
首先
拆分()
它,用空格替换逗号,
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
您可以先通过
拆分()它,将逗号替换为空格,
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

就像TigerhawkT3的答案一样,我也使用了
csv.reader
,但还有两个参数

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

就像TigerhawkT3的答案一样,我也使用了
csv.reader
,但还有两个参数

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

发布您的尝试..@Selcuk不really@AnttiHaapala在你的尝试之后怎么样?@Selcuk notreally@AnttiHaapala我想知道我的答案有什么不对或没有帮助的地方,让它值得投反对票,这样我就可以改进它。我想知道我的答案有什么不对或没有帮助的地方,让它值得投反对票,这样我才能改进它。