如何根据逗号作为分隔符拆分字符串,逗号在双引号内保持python中的状态

如何根据逗号作为分隔符拆分字符串,逗号在双引号内保持python中的状态,python,csv,Python,Csv,我想根据逗号分隔字符串,但当字符串位于双引号内时,逗号应保持原样。为此,我编写了以下代码。但是,下面给出的代码似乎不起作用。有人能帮我找出错误是什么吗 >>> from csv import reader >>> l='k,<livesIn> "Dayton,_Ohio"' >>> l1=[] >>> l1.append(l) >>> for line1 in reader(l1):

我想根据逗号分隔字符串,但当字符串位于双引号内时,逗号应保持原样。为此,我编写了以下代码。但是,下面给出的代码似乎不起作用。有人能帮我找出错误是什么吗

>>> from csv import reader
>>> l='k,<livesIn> "Dayton,_Ohio"'
>>> l1=[]
>>> l1.append(l)
>>> for line1 in reader(l1):
        print line1
来自csv导入读取器的
>>
>>>l='k,“俄亥俄州代顿”
>>>l1=[]
>>>l1.附加(l)
>>>对于读取器(l1)中的第1行:
打印行1
我得到的结果是:

['k', '<livesIn> "Dayton', '_Ohio"']
['k','Dayton','u ohoio']
然而,我希望输出为:
['k','Dayton,'u ohoi']
,也就是说,我不希望
“Dayton,'u ohoi”
被分开。

所以这里有一个方法

>>> from csv import reader
>>> l='k,<livesIn> "Dayton,_Ohio"'
>>> l1=[]
>>> l1.append(l)
>>> for line in reader(l1):
...   print list((line[0], ','.join(line[1:])))
... 
['k', '<livesIn> "Dayton,_Ohio"']
来自csv导入读取器的
>>
>>>l='k,“俄亥俄州代顿”
>>>l1=[]
>>>l1.附加(l)
>>>对于线输入读卡器(l1):
...   打印列表((第[0]行、“、”.join(第[1:]))
... 
['k','Dayton,_Ohio']

您需要配置方言参数。为什么使用csv解析字符串而不是csv文件?这很好,但是更好的方法是
reader(StringIO(l))