必须用 json.dumps 处理整个 messages 对象:先构建成 {"role": "user", "content": raw_text} 字典并放入 messages 列表,再对 {"messages": messages} 调用 json.dumps,确保换行符、双引号等全部自动转义,避免 400 错误。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

腾讯混元API请求中,若原始文本含换行符或双引号,直接拼入JSON会导致解析失败、400错误或字段截断——因为JSON标准要求换行必须转义,未转义的双引号会提前闭合字符串。
处理换行符
方法一:用
替换所有换行
在构造 messages.content 字符串前,将用户输入中的回车符(
或
)统一替换为 JSON 合法的
转义序列。Python 示例:text.replace('
', '\n').replace('
', '\n')。这一步必须做,否则 API 服务端解析时会把换行当作非法字符丢弃。
方法二:用 json.dumps 自动转义
更稳妥的做法是不手动替换,而是把原始字符串传给 json.dumps() 处理后再取其内部值。例如:json.dumps({"content": raw_text}) 返回的字符串已含完整转义,再从中提取 content 部分即可。这能覆盖制表符、退格、Unicode 控制字符等边缘情况。
处理双引号
方法一:前置反斜杠转义
对 content 字符串中每个英文双引号 " 执行转义,变成 "。注意只转义内容里的双引号,不要动 JSON 外层的键名引号。这一步容易漏掉嵌套引号,比如用户写了 "他说:"快走!"",中间那对就得转成 "他说:"快走!"" ——手写正则极易出错。
方法二:交给 json 库统一处理(推荐)
【必须使用 json.dumps 处理整个 messages 对象,而非仅 content 字段】。因为混元 API 的 messages 是数组,其中每个元素是 { "role": "...", "content": "..." } 结构,只有对整个合法 Python dict 调用 json.dumps,才能确保 role 和 content 里的所有特殊字符都被正确包裹和转义。手动拼接字符串永远不可靠。
组合场景实操步骤
第一步:准备原始输入文本,确认含换行与双引号(例如用户粘贴了一段带缩进的 JSON 示例);
第二步:构建 Python 字典结构:{"role": "user", "content": raw_text};
第三步:将该字典放入 messages 列表,如 messages = [{"role": "user", "content": raw_text}];
第四步:调用 json_payload = json.dumps({"messages": messages}, ensure_ascii=False);
第五步:把 json_payload 作为 HTTP body 发送给混元 API 接口。
这一步做完后立刻结束。


















