You need to enable JavaScript to run this app. 嵌套列字符串转JSON时单双引号冲突引发JSONDecodeError如何解决
优惠活动
大模型
产品
解决方案
定价
更多

嵌套列字符串转JSON时单双引号冲突引发JSONDecodeError如何解决

可行解决方案

核心思路:你要解析的内容本质是Python字典的字面量格式,不是标准JSON,不需要手动替换引号,直接用Python官方的ast.literal_eval工具解析即可,原生兼容两类场景。


操作步骤

  • 导入依赖库
import ast
import pandas as pd
from pandas import json_normalize
  • 直接解析嵌套列内容
    不需要做任何引号替换操作,直接调用ast.literal_eval解析,自动兼容单引号包裹属性、转义单引号的场景:
df['parsed_content'] = df['column'].apply(ast.literal_eval)
  • 生成结构化DataFrame
    解析完成后直接用json_normalize展开嵌套值即可:
final_df = json_normalize(df['parsed_content'])

脏数据兼容处理

如果数据中存在空值、格式错误的异常内容,可以加异常捕获逻辑避免批量处理中断:

def safe_parse(input_str):
    try:
        return ast.literal_eval(input_str)
    except (ValueError, SyntaxError, TypeError):
        # 异常场景可根据需求返回空字典、NaN或原字符串
        return {}

df['parsed_content'] = df['column'].apply(safe_parse)

原理说明:手动替换引号会破坏字符串内部的转义语义,导致原本合法的转义单引号变成非法的JSON格式。ast.literal_eval是专门用于安全解析Python字面量(字典、列表、元组等)的工具,原生支持Python语法的单引号、转义字符规则,完全不需要提前做字符串修正操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 04:45:05