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

如何将包含转义\n的JSON字符串原样写入文件

问题原因

JSON 解析器会按照 JSON 标准自动将字符串中的转义序列(如\n)转换为对应的控制字符,因此你解析后得到的j['text']本身已经是包含真实换行符的字符串,直接写入文件就会输出为两行内容。

解决方法

这里以最常见的 Python 场景为例提供两种可行方案:

方案1:字符串替换(仅处理\n,可控性高)

直接把解析后字符串里的真实换行符替换为\和n两个独立字符,不会影响其他内容:

import json

with open("你的JSON文件路径.json", "r", encoding="utf-8") as f:
    j = json.load(f)

# 替换换行符为转义表示
output_content = j["text"].replace("\n", r"\n")

with open("输出文件路径.txt", "w", encoding="utf-8") as out:
    out.write(output_content)

方案2:统一转义所有控制字符

如果需要保留所有转义序列(如\t、\r等),可以用unicode_escape编码批量处理:

import json

with open("你的JSON文件路径.json", "r", encoding="utf-8") as f:
    j = json.load(f)

# 把所有控制字符转成对应的转义序列表示
output_content = j["text"].encode("unicode_escape").decode("utf-8")

with open("输出文件路径.txt", "w", encoding="utf-8") as out:
    out.write(output_content)

注意:该方案会把非ASCII字符(比如中文)也转为\uXXXX格式的Unicode转义序列,如果你不需要处理这类字符,优先使用方案1。

其他语言参考(Node.js)

如果是JavaScript/Node.js场景,可以通过JSON序列化后裁剪引号实现:

const fs = require("fs")
const j = JSON.parse(fs.readFileSync("你的JSON文件路径.json", "utf-8"))
const outputContent = JSON.stringify(j.text).slice(1, -1)
fs.writeFileSync("输出文件路径.txt", outputContent)

内容的提问来源于stack exchange,提问作者Mr.cysl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 14:15:03