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

PyYAML 6.0.1:yaml.safe_load遇换行丢失空格,如何保留换行与空格?

解决PyYAML safe_load丢失换行后空格的问题

PyYAML 6.0.1的safe_load默认遵循YAML规范的折叠字符串规则,会自动移除换行后的前导空格。要同时保留换行和空格,有两种可靠方法:

方法1:使用YAML literal块标记(|)

literal块会完整保留字符串的所有换行、空格格式,是处理多行带空格文本的最优方案。示例代码:

import yaml
# 用三重引号包裹带|标记的YAML内容
data = yaml.safe_load("""|
first

         second
""")
print(repr(data))  # 输出:'first\n\n         second'

注意:|标记后需紧跟换行,内容部分的所有空格和换行都会被原样保留。

方法2:用双引号包裹转义后的字符串

如果是在代码中构造单行YAML字符串,可以用双引号包裹并明确转义换行符,强制保留所有空格:

import yaml
data = yaml.safe_load('"first\\n\\n         second"')
print(repr(data))  # 输出:'first\n\n         second'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 22:26:08