python - 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 标记 - 让我知道原因
解决方案
您可以尝试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']]
推荐阅读
- javascript - 将文件写入文件系统,然后在 Express 中下载
- python-3.x - pandas 两个值相乘结果的总和
- google-sheets-formula - 如何在 Query 函数中添加 Count 或 Countif 之类的条件来限制?
- java - JavaFX:不管我写的代码,它总是出现一个空白的“hello word”GUI
- javascript - 如何通过 Props 提取 Route Params
- flutter - 颤振:找不到包“build_runner”
- javascript - 如何对数组中大于 150 的元素求和?
- java - 返回新字符串(密码);有人可以解释一下,这是如何返回 String 的吗?
- javascript - 如何在不使用 jQuery 的情况下将 Ajax 与 node.js 一起使用
- postgresql - INTERVAL add i day 在 postgresql 中不起作用