从python列表中删除额外的引号

时间:2015-03-19 03:31:08

标签: python

我从Web API检索一些数据,但检索到的记录带有我需要删除的额外引号; result = ['"A1","Location1"', '"A2","Location2"']对于大型数据集执行此操作的最有效方法是什么,例如10000项,以便我最终得到类似的内容:

result = ["A1","Location1", "A2","Location2"]

3 个答案:

答案 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。它会自动执行此操作。