Python中如何将字符串格式的列表转换为真实的list对象
Python字符串转列表对象的两种常用方案
先纠正你示例里的变量名写法,Python变量名不能包含空格,正确的写法是list1 = "[[1,2],[3,4]]"。
方案1:使用ast.literal_eval(最推荐,安全性高)
这个方法只会解析Python字面量结构,不会执行任意代码,比原生eval安全很多,适配所有符合Python列表语法的字符串,不管内容是数字、字符串、嵌套列表/元组/字典都可以正常解析。
示例代码:
import ast list1 = "[[1,2],[3,4]]" real_list = ast.literal_eval(list1) print(real_list) print(type(real_list))
输出结果:
[[1, 2], [3, 4]] <class 'list'>
方案2:使用json.loads(适合符合JSON格式的字符串)
如果你的字符串严格符合JSON语法(比如没有单引号、没有Python特有的数据类型,且None对应null、True/False对应true/false),也可以用json模块处理:
示例代码:
import json list1 = "[[1,2],[3,4]]" real_list = json.loads(list1) print(real_list)
输出和上述方案一致。
注意:不要直接用
eval处理不可信来源的字符串,会存在代码注入的安全风险。
内容的提问来源于stack exchange,提问作者amir.h
相关产品推荐
相关产品推荐

