Python中如何将嵌套列表的字符串表示转换为实际list数据结构
Python将嵌套列表形式的字符串转为实际list的实现方法
你可以通过以下几种常见方案实现需求,以下方示例变量为例:
k = "['A',['B','C'],'D']"
方案1:使用ast.literal_eval(最推荐)
这是最安全、适配性最高的方案,ast.literal_eval只会解析Python合法的字面量结构,不会执行任意代码,没有安全风险,天然支持嵌套列表、嵌套字典等复杂字面量结构。
示例代码:
import ast result = ast.literal_eval(k) # 若需要得到你示例中换行格式化的打印效果,可配合pprint模块使用 from pprint import pprint pprint(result) # 输出: # ['A', # ['B', 'C'], # 'D']
方案2:使用eval(不推荐,仅作参考)
该方法可以直接解析得到目标列表,但存在极高的安全风险:如果字符串来源不可信,会执行字符串中包含的任意恶意代码,仅可在完全确认字符串来源安全的场景下临时使用。
示例代码:
result = eval(k) print(result) # 输出:['A', ['B', 'C'], 'D']
方案3:使用json.loads(适配场景有限)
JSON解析器也可以完成转换,但JSON规范要求字符串必须使用双引号,因此需要先把字符串中的单引号替换为双引号,且仅可在列表内部元素无单引号、无Python特有类型的场景下使用。
示例代码:
import json result = json.loads(k.replace("'", '"')) print(result) # 输出:['A', ['B', 'C'], 'D']
内容的提问来源于stack exchange,提问作者Mikasa
相关产品推荐
相关产品推荐

