拆分带有异常的字符串

时间:2013-02-22 18:51:29

标签: python csv split

我有这个字符串'id,obj1,"string, etc",obj2',现在我需要把它分成这样的字典:

{
  1 = 'id',
  2 = 'obj1',
  3 = 'string, etc',
  4 = 'obj2'
}

我一直在玩正则表达式,试图分割字符串但没有成功。任何帮助表示赞赏

2 个答案:

答案 0 :(得分:9)

以下内容可能适用于您的用例:

>>> s = 'id,obj1,"string, etc",obj2'
>>> import csv
>>> dict(enumerate(next(csv.reader([s])),start=1))
{1: 'id', 2: 'obj1', 3: 'string, etc', 4: 'obj2'}

答案 1 :(得分:0)

您可以对输入重复应用/([^"]*)(?:"([^"]*)")?/之类的正则表达式。在每次匹配时,第一个子组匹配包含可以直接用逗号分割的任何元素,第二个子组匹配(如果有的话)包含带引号的条目。