csv在python中使用值中的引号进行解析

时间:2015-06-11 16:01:33

标签: python

我试图用csv模块解析简单的字符串:

s='param="(a, b)", param2, param3'
list(csv.reader([s], skipinitialspace=True))

它分裂为

[['param="(a', 'b)"', 'param2', 'param3']]

但我想

[['param="(a, b)"', 'param2', 'param3']]

似乎对于csv模块引用的文本可能只是整个内容。

如何正确制作我想要的东西?

注意:这不是Splitting with commas的副本,因为在这种情况下,每个字段都没有引用,只是字段中的一部分。在这种情况下,该链接上发布的答案(以及 问题重复的链接)不适用,如上面的代码所示(它重新创建与发布的相同的结构)答案,并表明它失败了。)

1 个答案:

答案 0 :(得分:3)

不幸的是,csv模块并没有处理它认为不恰当引用的文本,或者看起来如此。一种选择是依靠正则表达式,比如

JSON

(如果你可以从格式更好的初始字符串开始会更好,所以如果你可以控制它,那将是一个更好的方法。)