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

Python合并pandas导出的JSON字符串时如何消除多余转义反斜杠

问题根源

你遇到的转义反斜杠是重复JSON序列化导致的:object1()、object2()已经将数据序列化为JSON字符串,你把字符串直接存入字典再做一次json.dumps()时,序列化逻辑会把字符串内部的双引号当做普通字符转义,所以才会出现大量\。
另外你的代码还有两处低级错误:

  • 调用函数漏加括号:item1 = object1 是把函数对象赋值给变量,不会拿到返回结果,要写成item1 = object1()
  • 方法名写错:json_dumps 是json模块的方法,正确写法是json.dumps()

解决方案

方案1(最推荐):统一做序列化

不要在object1、object2里提前做JSON序列化,直接返回pandas对象转成的Python原生结构(字典/列表),最后统一序列化:

import pandas as pd
import json

def object1():
    df = pd.DataFrame()
    # 你的计算逻辑,data是要存入df的数据
    df = df.append(data, True)
    # 直接返回Python字典/列表,不序列化
    return df.to_dict(orient='records') # orient参数根据你需要的JSON结构调整,可选'index'/'columns'等

def object2():
    # 逻辑和object1一致,返回原生Python结构
    pass

def to_json_object():
    # 调用函数拿原生结构
    item1 = object1()
    item2 = object2()
    json_data = {'object1':item1, 'object2':item2}
    # 统一做一次序列化
    return json.dumps(json_data)

方案2:无法修改object1/object2返回值时用

如果object1、object2的返回逻辑不能改,必须返回JSON字符串,那你就先把序列化的字符串反序列化为Python原生结构,再放入字典统一序列化:

import json

def to_json_object():
    # 先调用函数拿到JSON字符串,再反序列化为Python对象
    item1 = json.loads(object1())
    item2 = json.loads(object2())
    json_data = {'object1':item1, 'object2':item2}
    return json.dumps(json_data)

两种方案都可以完全消除多余的转义反斜杠。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:15:04