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

如何将Pandas DataFrame字符串列转换为可解析的JSON或字典类型?

Pandas 字符串格式类JSON列转换方案

错误原因

你的代码触发报错的核心问题是:仅筛选非空行做转换后直接赋值给全列,空值行未做兼容处理,同时直接使用eval方法存在执行任意恶意代码的极高安全风险,不适用于生产环境。

兼容空值的转换方案

推荐使用Python标准库ast的literal_eval方法,该方法仅会解析Python合法字面量结构(字典、列表、字符串等),不会执行任意代码,完全适配你当前单引号包裹的类JSON字符串场景,同时天然兼容空值:

import ast
import pandas as pd
import numpy as np

# 自定义转换函数
def parse_dict_str(x):
    # 空值直接返回原值,不做处理
    if pd.isna(x):
        return x
    # 非空字符串解析为字典
    return ast.literal_eval(x)

# 对整列做转换
df['json_col'] = df['json_col'].apply(parse_dict_str)

转换完成后json_col非空行均为标准Python字典类型,可直接读取字段,比如:

# 读取第一行value下的Code字段
print(df.loc[0, 'json_col']['value']['Code'])
# 输出结果:06037

快速提取指定字段示例

如果你不需要保留完整字典,只想提取指定字段,可以直接在转换时取值:

# 直接提取value下的Code字段,空值自动保留
df['code'] = df['json_col'].apply(lambda x: x['value']['Code'] if pd.notna(x) else x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:18:00