对不起标题,我不确定如何确切地询问这个问题。

我有一个游戏评论信息的数据集。信息以逗号分隔,但是其中一些信息(例如标题或体裁)中包含逗号。这些都是内部报价。我想将其转换为列表,但将引号内的所有内容作为单个索引而不是两个。这是一个例子。这是原始数据:

14,Amazing,Mark of the Ninja,PC,9.0,"Action, Adventure",Y,2012,9,7


我使用.rstrip().split(',')获得:

[14, Amazing, Mark of the Ninga, PC, 9.0, "Action, Adventure", Y, 2012, 9, 7]


但是"Action, Adventure"会产生两个索引。我希望将其作为单个索引,但是不确定如何处理。

我对正则表达式没有太多的经验,但是我想这就是我要寻找的解决方案。

关于解决此问题的最佳方法有什么建议吗?

最佳答案

内置的csv模块将处理此问题,唯一的麻烦是该库实际上是为使用文件而设计的,因此,对于有字符串的情况,文档可能对您的情况没有帮助。但是reader对象可以使用列表,因此您可以传入一个CSV格式的字符串列表来代替文件:

import csv
print(list(csv.reader(["""14,Amazing,Mark of the Ninja,PC,9.0,"Action, Adventure",Y,2012,9,7"""])))
# [['14', 'Amazing', 'Mark of the Ninja', 'PC', '9.0', 'Action, Adventure', 'Y', '2012', '9', '7']]

关于python - 数据具有与我将其分割的相同字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50302291/

10-12 19:24