我从Web API检索一些数据,但检索到的记录带有我需要删除的额外引号; result = ['"A1","Location1"', '"A2","Location2"']
对于大型数据集执行此操作的最有效方法是什么,例如10000项,以便我最终得到类似的内容:
result = ["A1","Location1", "A2","Location2"]
答案 0 :(得分:7)
如果列表result
的每个项目都是以逗号分隔的字符串"引用"子项目(子项目中不包含逗号),您可以轻松地创建新列表clean
,如下所示:
clean = []
for item in result:
subitems = item.split(',')
clean.extend(si[1:-1] for si in subitems)
如果您的约束条件更复杂(引用可能会或可能不会出现在eadh子项目周围,引用的子项目可能包含逗号等等 - 我无法在每个详细信息中盲目猜测限制你没有让我们知道! - )任务将比例更难,可能涉及正则表达式,或更糟......但我们不会知道,除非你编辑你的Q指定非常正是完全,你必须处理的事情! - )
答案 1 :(得分:0)
另一个不太好(有点脏)但工作的解决方案是ast.literal_eval
使用repr
:
from ast import literal_eval
result = ['"A1","Location1"', '"A2","Location2"']
literal_eval(repr(result).replace("\'", ""))
['A1', 'Location1', 'A2', 'Location2']
答案 2 :(得分:-1)
使用python内置的CSV module。它会自动执行此操作。