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

为何YAML中"\n"解析为空格、"\n\n"解析为换行?

YAML中"\n"解析为空格、"\n\n"解析为单个换行的原因

这是YAML规范里双引号标量的折叠换行规则导致的:

  • 双引号字符串里的单个\n会被视为“折叠换行”,解析时替换为空格,目的是支持把多行文本逻辑上合并成单行展示
  • 当出现连续两个\n时,第一个\n会触发换行保留,第二个\n作为折叠终止的标记,最终解析结果为单个换行符

复现代码

import yaml

# 单个换行被解析为空格
yaml_txt = """value: "\n"
"""
x = yaml.load(yaml_txt, Loader=yaml.SafeLoader)
print(repr(x["value"]))
# 输出: ' '

# 两个换行被解析为单个换行符
yaml_txt = """value: "\n\n"
"""
x = yaml.load(yaml_txt, Loader=yaml.SafeLoader)
print(repr(x["value"]))
# 输出: '\n'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 12:14:58