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

如何将含嵌套数组格式字符串的数组转换为Python列表?

可行解决方案

方案一:使用ast.literal_eval解析(推荐)

Python的ast模块提供的literal_eval方法,专门用于解析Python字面量结构(列表、字典、元组等),且不会执行任意代码,安全性远高于eval。直接处理你的输入即可:

import ast

# 你的输入数据
input_array = ["[['plane1.png', '[-1.0, -1.0, 0.9999999999999999, -1.4501078562170397, -3.0908559322343176, 2.7628911124920634]'], ['plane1.png', '[-1.0, -1.0, 0.9999999999999999, -1.4501078562170397, -3.0908559322343176, 2.7628911124920634]'], ['plane1.png', '[-1.0, -1.0, 0.9999999999999999, -1.4501078562170397, -3.0908559322343176, 2.7628911124920634]']]"]

# 取出数组中的字符串元素
target_str = input_array[0]
# 解析为Python列表
result_list = ast.literal_eval(target_str)

# 验证结果
print(type(result_list))  # 输出 <class 'list'>
print(result_list)

方案二:进一步解析嵌套的数字字符串

如果需要把每个子项中的数字字符串也转换成真正的列表,可嵌套使用ast.literal_eval:

import ast

input_array = ["[['plane1.png', '[-1.0, -1.0, 0.9999999999999999, -1.4501078562170397, -3.0908559322343176, 2.7628911124920634]'], ['plane1.png', '[-1.0, -1.0, 0.9999999999999999, -1.4501078562170397, -3.0908559322343176, 2.7628911124920634]'], ['plane1.png', '[-1.0, -1.0, 0.9999999999999999, -1.4501078562170397, -3.0908559322343176, 2.7628911124920634]']]"]

target_str = input_array[0]
raw_list = ast.literal_eval(target_str)

# 处理嵌套的数字字符串
final_list = [[item[0], ast.literal_eval(item[1])] for item in raw_list]

print(final_list)

原方法失败的原因

你之前使用的np.fromstring是numpy提供的数值解析工具,仅能从纯数值字符串中提取数据并转换为numpy数组,无法处理包含字符串、嵌套列表的复杂结构化字符串,因此不适用当前场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:20:35