Python中如何将数组格式字符串转换为字符串数组
解决方法
核心思路是先通过正则匹配为所有无包裹的标识符添加双引号,再用常规方法解析字符串。
Python实现代码
方法1:匹配固定格式标识符(推荐,准确率更高)
如果你的标识符固定为5位数字-4位数字-2位数字的格式,使用精准正则匹配:
import re import json raw_str = '[[00487-9904-01, 00487-9904-25], [00487-9901-30]]' # 为所有符合格式的标识符加双引号 processed_str = re.sub(r'\b\d{5}-\d{4}-\d{2}\b', r'"\g<0>"', raw_str) # 解析为数组 result = json.loads(processed_str) print(result) # 输出:[["00487-9904-01", "00487-9904-25"], ["00487-9901-30"]]
方法2:通用匹配(适配任意标识符格式)
如果标识符格式不固定,可以匹配所有数组元素位置的非分隔符字符:
import re import ast raw_str = '[[00487-9904-01, 00487-9904-25], [00487-9901-30]]' processed_str = re.sub(r'(?<=[\[ ,])[^,\[\]]+(?=[,\] ])', r'"\g<0>"', raw_str) result = ast.literal_eval(processed_str)
注意事项
- 两种方法处理后的字符串都同时兼容
json.loads和ast.literal_eval两种解析方式,可根据使用习惯选择。 - 通用匹配方法仅适用于数组元素本身不包含逗号、方括号的场景,如果元素有特殊字符需要调整正则规则。
内容的提问来源于stack exchange,提问作者Arthur
相关产品推荐
相关产品推荐

