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

eval无法将DataFrame中类字典格式字符串转为字典该如何解决?

错误原因

  • 核心问题是你多余地给原字符串额外包裹了引号:原taglist本身就是符合Python字典字面量格式的字符串,你额外加双/三引号后,传入eval的内容变成了「字符串字面量」,执行后自然返回字符串类型,不可能得到字典
  • 之前的语法报错是因为你加的外层双引号,和字符串内部本身存在的双引号(比如报错信息里的"1990's")发生了转义冲突,触发语法错误

最优解决方案

不要用eval,风险极高(如果字符串里有恶意代码会直接执行),推荐用Python标准库ast提供的literal_eval,专门用于安全解析Python字面量(字典、列表、元组等),自动处理引号、特殊字符等问题,比eval稳定安全得多。

pandas场景下不需要写循环,直接用apply批量处理整列即可:

import ast
import pandas as pd

# 直接对tags列批量转换,一行搞定
main_data["tag_dict"] = main_data["tags"].apply(ast.literal_eval)

转换后tag_dict列的每一行都是标准字典类型,可以直接取键值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:15:04