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

使用pandas读取Excel后,json.dumps处理值出现多余转义字符问题

问题分析:json.dumps() 导致多余转义双引号的原因与解决方法

这问题我之前也碰到过,其实是json.dumps()的工作逻辑和你预期的不匹配导致的,咱们一步步拆解:

为什么会出现多余的转义?

你从Excel读取的something本身就是一个带双引号的字符串(比如"APPLE","BANANA")。而json.dumps()的核心作用是将Python对象转换为符合JSON规范的字符串:

  • 当你传入一个字符串给它时,它会把这个字符串包装成JSON的字符串类型——也就是给整个内容加上外层双引号,同时对字符串内部的双引号用\进行转义(这是JSON的强制规范,否则内部双引号会破坏JSON的结构边界)。
  • 所以你看到的"\"APPLE\","BANANA\""其实是JSON格式对原字符串的标准表示:外层双引号是JSON字符串的边界,内部的\"是原字符串里的双引号转义后的结果。

解决方法(分场景)

场景1:目标是生成JSON数组(推荐)

如果你希望输出的是["APPLE","BANANA"]这种标准的JSON数组,那需要先把Excel里的字符串转换成Python列表,再用json.dumps()处理:

for x in range(1,n):
    label = (df.columns[x]).strip()
    something = (df[df.columns[x]][i])
    # 清理并转换为Python列表:分割字符串、去除引号和空白
    item_list = [item.strip('" ').strip() for item in something.split(',')]
    value = json.dumps(item_list)
    print(label)
    print(value)

执行后输出会是:

productTypes
["APPLE","BANANA"]

完全符合JSON规范,没有多余转义。

场景2:只想原样输出原字符串

如果你的需求只是原封不动输出Excel里的内容,那根本不需要使用json.dumps(),直接打印something即可。

如果必须将这个值整合到更大的JSON结构中,但又坚持不转义内部引号(不推荐,会违反JSON规范),可以手动替换转义符:

value = json.dumps(something).replace('\\"', '"')

⚠️ 注意:这种方式生成的内容不符合JSON标准,后续解析时极大概率会报错,除非你确定下游系统能兼容这种非标准格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:33:13