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

如何对DataFrame中存储JSON响应的列使用eval函数完成解析

解析DataFrame JSON列的方案

报错核心原因

  • JSON标准语法中的null、true、false和Python原生的None、True、False命名不匹配,eval默认无法识别
  • 列中可能存在空值、格式损坏的字符串,直接转换会触发语法异常
  • 原生eval未做权限限制,也没有JSON适配逻辑,极易报错

正确使用eval的实现代码

补充JSON标识符映射和异常捕获,同时限制执行权限避免安全风险:

import pandas as pd

def safe_eval_convert(x):
    # 过滤空值
    if pd.isna(x):
        return None
    try:
        # 映射JSON关键字到Python原生值,同时禁用内置函数避免安全问题
        return eval(
            str(x),
            {"__builtins__": None},
            {"null": None, "true": True, "false": False}
        )
    except:
        # 异常值返回空,可根据需求调整为返回原字符串
        return None

df['account_Segments'] = df['account_Segments'].apply(safe_eval_convert)

更推荐的替代方案(无需eval)

处理JSON字符串优先使用Python内置的json模块,兼容性更高且无安全隐患:

import json
import pandas as pd

def json_convert(x):
    if pd.isna(x):
        return None
    try:
        return json.loads(str(x))
    except json.JSONDecodeError:
        return None

df['account_Segments'] = df['account_Segments'].apply(json_convert)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 19:39:01