首页 > 解决方案 > Python - 解析字符串格式的字符串列表

问题描述

我在解析以下格式的字符串列表时遇到问题。这实际上是一个熊猫数据框:

def parse_text_to_list(row):
    print(row) # eval is not working as inner strings are missing the quotes
    return row

df.apply(parse_text_to_list)  

输出

# printed only one row to simplify the question
['[[str1, str2], [str1, a long text], ..., [strn, strx]]']

但想要将其转换为纯 python 列表,如:

[["str1", "str2"], ["str1", "a long text"], ... ["strn", "strx"]]

@Negative 标记 - 让我知道原因

标签: pythonpandasparsing

解决方案


您可以尝试regular expression获取literal_eval列表

import re
import ast

l = ['[[str1, str2], [str1, a long text], [strn, strx]]']

output = ast.literal_eval(re.sub(r'([^\[\],\s][^\[\],]+[^\[\],\s])', r'"\1"', l[0]))

print(output)
[['str1', 'str2'], ['str1', 'a long text'], ['strn', 'strx']]

推荐阅读