如何将列表格式的字符串转换为实际的字符串列表
你可以按照「去除外层多余引号→解析字面量为列表」的逻辑完成转换,不同语言的实现方式如下:
Python 实现
方法1:使用ast.literal_eval(最安全,推荐)
不会执行任意代码,适配单引号包裹的列表字面量格式:
import ast # 原始输入字符串 raw_str = "'['foo', 'faa', 'fee']'" # 去除首尾多余的单引号 processed_str = raw_str.strip("'") # 解析为列表 result = ast.literal_eval(processed_str) print(result) # 输出:['foo', 'faa', 'fee']
方法2:使用json模块(内部为双引号场景适用)
如果列表内部的字符串用双引号包裹,可以用json解析:
import json raw_str = "'[\"foo\", \"faa\", \"fee\"]'" processed_str = raw_str.strip("'") result = json.loads(processed_str)
方法3:字符串切割(格式固定场景应急使用)
仅适合无嵌套、元素无特殊符号的场景:
raw_str = "'['foo', 'faa', 'fee']'" result = raw_str.strip("'[]").split("', '")
JavaScript 实现
const rawStr = "'['foo', 'faa', 'fee']'" // 去除首尾单引号,把内部单引号替换为双引号后解析 const processedStr = rawStr.slice(1, -1).replaceAll("'", '"') const result = JSON.parse(processedStr) console.log(result) // 输出:['foo', 'faa', 'fee']
注意事项
不要直接用eval解析未校验的输入,存在恶意代码执行风险,优先使用各语言提供的安全字面量解析接口。
内容的提问来源于stack exchange,提问作者OK 400
相关产品推荐
相关产品推荐

