You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将字符串形式的列表转换为原生列表类型

问题说明

现有以字符串格式存储的列表变量:
emp_id = "['1406','41232']"
需求是将其转换为Python原生列表类型 ['1406','41232']。
使用如下代码尝试转换时:

emp_id = emp_id.strip('][').split(", ")

得到的输出为 ["'1406'","'41232'"],每个元素外层残留了多余的单引号,不符合预期。

可行转换方案

方案1:使用ast.literal_eval(优先推荐)

Python标准库ast提供的literal_eval方法可以安全解析字符串形式的Python原生字面量(列表、字典、字符串、数字等),不需要手动处理字符串切割、引号剔除的逻辑,适配各种合法的列表格式,不会出现引号残留问题:

import ast

emp_id = "['1406','41232']"
emp_id = ast.literal_eval(emp_id)

执行后emp_id的值为['1406', '41232'],完全符合预期。

注意:禁止直接使用内置eval()方法做这类转换。eval会执行字符串内的任意可执行代码,如果字符串来源不可控,会触发任意代码执行的严重安全漏洞。

方案2:修正手动字符串处理逻辑

如果不想导入标准库模块,可以在原有切割逻辑的基础上,对分割后的每个元素做首尾单引号剔除:

emp_id = "['1406','41232']"
emp_id = [item.strip("'") for item in emp_id.strip('][').split(", ")]

该方案仅适用于列表元素本身不包含逗号、单引号的简单场景,如果元素内容包含上述特殊字符,手动切割的逻辑会出现解析错误,通用性远低于ast.literal_eval方案。

内容的提问来源于stack exchange,提问作者Ibrahim Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 09:12:29