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

Python将字典转为带转义双引号JSON格式用于curl传参的问题

问题根因

你之前的代码存在3个核心问题,导致转义不生效:

  • 传参错误:requests.get()返回的是Response响应对象,直接传入json.loads()会触发类型错误,应该取响应文本response.text做解析,或者直接调用response.json()拿到解析后的Python字典
  • 语法错误:手写的replace替换逻辑里引号转义写法错误,Python无法正常解析这段代码
  • 逻辑缺陷:手动替换单引号的方案只能处理最外层键值对,多层嵌套的字典结构(比如你示例里TableViewConfig下的Resources子对象)不会被处理,且容易出现值内容里本身带引号的转义错误。
正确实现方法

不需要手动写字符串替换逻辑,直接用Python标准库json做两次序列化就能得到符合要求的转义格式,适配所有嵌套结构,不会出现转义错误:

import requests
import json

# 第一次请求拿原始数据
first_url = "你的第一个请求地址"
resp = requests.get(first_url)
# 直接解析响应得到Python字典
origin_data = resp.json()

# 两次序列化生成目标格式
# 第一次:字典转无多余空格的标准JSON字符串,和你给的示例格式对齐
standard_json = json.dumps(origin_data, separators=(',', ':'))
# 第二次:对JSON字符串做转义,自动给双引号加反斜杠
escaped_str = json.dumps(standard_json).strip('"')

# 此时escaped_str就是你需要的传参格式
print(escaped_str)
效果验证

如果原始解析后的字典是{"TableViewConfig": {"displayLength": 50, "Resources": "demo"}},最终输出的escaped_str内容为:

{\"TableViewConfig\":{\"displayLength\":50,\"Resources\":\"demo\"}}

完全匹配curl GET请求data参数要求的传入格式,直接把这个值传给第二个请求的data参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:18:17