从python列表中去掉多余的引号

2024-04-26 21:55:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从web API中检索一些数据,但是检索到的记录带有额外的引号,我需要删除;result = ['"A1","Location1"', '"A2","Location2"']对于大型数据集,最有效的方法是什么,比如10000个条目,这样我就得到如下结果:

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

Tags: 数据方法apiweba2a1记录条目
3条回答

另一个不太好(有点脏)但有效的解决方案是使用ast.literal_evalrepr

from ast import literal_eval

result = ['"A1","Location1"', '"A2","Location2"']    
literal_eval(repr(result).replace("\'", ""))

['A1', 'Location1', 'A2', 'Location2']

使用python的内置CSV module。它会自动完成。你知道吗

如果列表result的每一项都是以逗号分隔的“引用”子项字符串(子项中不包含逗号),则可以轻松地创建一个新列表clean,如下所示:

clean = []
for item in result:
    subitems = item.split(',')
    clean.extend(si[1:-1] for si in subitems)

如果你的约束更复杂(引用可能在eadh子项附近,也可能不在eadh子项附近,引用的子项可能包含逗号等),我不能盲目地猜测你没有告诉我们的每一个详细约束!-)这项任务将相应地更加困难,可能涉及正则表达式,或者更糟。。。但我们不知道,除非你编辑你的Q,明确指出你必须处理的问题!-)你知道吗

相关问题 更多 >