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

如何将字典列表格式的字符串转为列表?解决ast.literal_eval报错

解决JSON字符串转字典列表的语法错误问题

问题场景

你持有如下格式的字符串:

s = "\"[{\\\"type\\\": \\\"add\\\", \\\"qty\\\": \\\"24\\\", \\\"obj\\\": \\\"SPM\\\", \\\"location\\\": \\\"Piedmont Road.\\\"}]\""

目标是将其转换为字典列表:

[{"type": "add", "qty": "24", "obj": "SPM", "location": "Piedmont Road."}]

尝试使用 ast.literal_eval() 解析时,触发了 invalid syntax 错误。

问题原因

字符串最外层的双引号导致 ast.literal_eval() 无法识别合法的Python字面量——整个内容被当作一个带转义引号的普通字符串,而非包含字典的列表结构。

解决方法

先移除字符串首尾的双引号,再使用 ast.literal_eval() 解析即可正常运行:

import ast

# 原始字符串
s = "\"[{\\\"type\\\": \\\"add\\\", \\\"qty\\\": \\\"24\\\", \\\"obj\\\": \\\"SPM\\\", \\\"location\\\": \\\"Piedmont Road.\\\"}]\""

# 移除首尾双引号
clean_str = s.strip('"')

# 解析为字典列表
result = ast.literal_eval(clean_str)
print(result)
# 输出: [{'type': 'add', 'qty': '24', 'obj': 'SPM', 'location': 'Piedmont Road.'}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:45:38