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

求助:使用ast.literal_eval转换字符串形式列表时结果不符预期

问题原因与解决办法

你的问题出在变量a的结构上:a实际是一个被外层双引号包裹的字符串,内容是["123456789","987654321"]。当你直接用ast.literal_eval(a)时,解析器会把外层的双引号识别为字符串的边界,最终返回的是字符串["123456789","987654321"]——如果你把这个字符串当成列表来用,自然会把每个字符拆成单独元素。

要得到预期的列表,需要先去掉外层的引号,再解析:

import ast

a = """\"[""123456789"",""987654321""]\""""
# 第一步:去掉字符串首尾的双引号
cleaned_a = a.strip('"')
# 第二步:解析处理后的字符串
lst = ast.literal_eval(cleaned_a)
print(lst)  # 输出: ['123456789', '987654321']

也可以用json模块来解析(因为内容符合JSON格式):

import json

a = """\"[""123456789"",""987654321""]\""""
cleaned_a = a.strip('"')
lst = json.loads(cleaned_a)
print(lst)  # 输出: ['123456789', '987654321']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:42:15