Python中如何将字符串形式的列表转换为实际list对象
Python字符串形式列表转真实列表实现方案
方法1:使用ast.literal_eval(优先推荐,安全)
该方法仅支持转换Python合法字面量结构(列表、字典、数字、字符串等),不会执行额外的恶意代码,是官方推荐的安全转换方案。
import ast # 待转换的字符串 str_content = '[356, 1079, 1220, 1060, 3039, 1197, 4085, 4002, 2395]' # 转换为列表对象 result_list = ast.literal_eval(str_content) # 验证输出 print(result_list) # 输出:[356, 1079, 1220, 1060, 3039, 1197, 4085, 4002, 2395] print(type(result_list)) # 输出:<class 'list'>
方法2:使用eval(不推荐,仅可用于完全可信的输入源)
如果待转换的字符串来源100%可控、不存在恶意代码注入风险,可以直接用eval转换,否则禁止使用该方法。
str_content = '[356, 1079, 1220, 1060, 3039, 1197, 4085, 4002, 2395]' result_list = eval(str_content) print(result_list) # 输出:[356, 1079, 1220, 1060, 3039, 1197, 4085, 4002, 2395]
注意事项
- 若字符串前后存在多余空格、换行符,可先调用
str_content.strip()清理后再执行转换,避免报错。
内容的提问来源于stack exchange,提问作者شیوا پاساراد
相关产品推荐
相关产品推荐

