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
相关产品推荐
相关产品推荐

