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

Pandas to_json导出JSON转义符、嵌套字段未解析解决方案

问题原因

你调用df['data'].to_json('data.json')得到带大量反斜杠、嵌套结构不识别的结果,核心原因是data列存储的内容是字符串类型的JSON序列化结果,不是pandas可识别的结构化字典/JSON对象。pandas导出时会将普通字符串做转义处理,不会自动解析字符串内部的JSON结构,加上默认导出的orient参数会把行索引作为外层键,就得到了你看到的异常结果。

解决步骤
  • 第一步:解析列内的JSON字符串
    使用Python标准库json的loads方法,将data列中每一行的JSON字符串转换为Python字典对象,让pandas能识别内部的嵌套结构:
import pandas as pd
import json

# 基础解析(适用于所有行JSON格式合法的场景)
df['data'] = df['data'].apply(json.loads)

如果存在部分行JSON格式不合法的情况,可以加容错逻辑避免流程中断:

def safe_parse_json(json_str):
    try:
        return json.loads(json_str)
    except (json.JSONDecodeError, TypeError):
        return None

# 带容错的解析
df['data'] = df['data'].apply(safe_parse_json)
# 可选:过滤掉解析失败的无效行
df = df.dropna(subset=['data'])
  • 第二步:调整导出参数生成标准JSON
    解析完成后,调整to_json的参数导出格式化的标准JSON文件:
df['data'].to_json(
    "data.json",
    orient="records", # 输出为标准JSON数组结构,不会出现行索引作为外层键的问题
    force_ascii=False, # 保留特殊字符、非英文字符不转义
    indent=2 # 增加缩进格式化,方便阅读和后续解析
)
导出效果

导出后的文件不会存在多余反斜杠,business_card、coordinates、rating这类原字符串内的嵌套字段,会被识别为标准JSON嵌套结构,可直接被各类JSON解析工具正常读取使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:01:08