yaml.safe_load 去除包含换行的空格

-1 投票
1 回答
23 浏览
提问于 2025-04-12 15:14

我正在使用一个叫做 PyYAML==6.0.1 的库,想要从一个字符串形式的YAML中获取一个对象。

问题是,当我用 yaml.safe_load 处理包含换行符的文本时,它会把空格去掉。

举个例子:

data = yaml.safe_load("first\n\n         second")

这样返回的字符串有换行符,但空格被去掉了。

'first\nsecond'

如果我不加换行符,空格就会保留。

我该怎么做才能同时保留换行符和空格呢?

1 个回答

0

在@KamilCuk的帮助下,我终于查阅了官方的YAML文档,找到了我问题的解决办法。

我的解决办法是把一个“字面量标量”加到我的YAML字符串里,并且去掉了第二个'\n',因为它不再需要了(可以参考字面量风格文档):

yaml.safe_load("|-\n first\n         second")

这样,之前操作的结果就是:

'first\n         second'

撰写回答