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

Python中如何将列表内字符串形式的列表转换为真实列表?

解决字符串嵌套列表转真实列表的问题

你可以通过以下几种方法将字符串形式的子列表转换为真实的Python嵌套列表:

方法一:使用ast模块(推荐)

ast.literal_eval是安全解析Python字面量的工具,不会执行任意代码,适合处理这类场景:

import ast

original_list = ["[21049090, 'AARTIIND22AUGFUT', 'AARTIIND', 850, 1793]", "[21049346, 'ABB22AUGFUT', 'ABB', 250, 3329]"]
converted_list = [ast.literal_eval(item) for item in original_list]
print(converted_list)

执行后会输出:

[[21049090, 'AARTIIND22AUGFUT', 'AARTIIND', 850, 1793], [21049346, 'ABB22AUGFUT', 'ABB', 250, 3329]]

方法二:使用json模块

由于JSON格式要求字符串用双引号,先将子列表字符串中的单引号替换为双引号,再用json.loads解析:

import json

original_list = ["[21049090, 'AARTIIND22AUGFUT', 'AARTIIND', 850, 1793]", "[21049346, 'ABB22AUGFUT', 'ABB', 250, 3329]"]
converted_list = []
for item in original_list:
    json_str = item.replace("'", '"')
    converted_list.append(json.loads(json_str))
print(converted_list)

注意:如果子列表的字符串内容本身包含单引号(比如'I'm test'),这种替换会出错,此时优先用ast方法。

方法三:使用eval(不推荐)

eval可以直接执行字符串中的Python代码,但如果输入数据来自不可信来源,会存在安全风险,仅在你完全确认数据安全时使用:

original_list = ["[21049090, 'AARTIIND22AUGFUT', 'AARTIIND', 850, 1793]", "[21049346, 'ABB22AUGFUT', 'ABB', 250, 3329]"]
converted_list = [eval(item) for item in original_list]
print(converted_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:30:55