YAML中序列中的多行

阿夫申

我想在YAML中的序列中包含多行。这是我的方法,但是在python中解析时遇到问题:

Element: |
   - multiple lines
     come here

这样,用Python解析时,仍会-在解析数据中看到似乎YAML无法理解这是一个列表。

安通

您输入的内容不是列表,YAML只知道映射(构造为Pythondict和序列(构造为Python list))。

通常-是块序列输入指示器,但是由于您在第一行以的值作为key的值启动了块样式文字Element,因此|,紧随其后所有缩进量都是此标量的一部分(构造为Python字符串)。

您要做的是将指标带到文字标量之外:

Element: 
- |
  multiple lines
  come here

如果您加载在Python中的一个变量data,然后data['Element'][0]将字符串'multiple lines\ncome here\n'也就是说:您的文字标量中的每个换行符都将是您的字符串中的换行符,并且该字符串上将有一个最终的换行符,而与跟随的空行数无关(这是剪切)。如果您希望结尾没有换行符,则使用|-(剥离),如果您希望所有换行符直到缩进,则使用|+(保持)。那些添加到的指标|称为“砍伐指标”

如果在名为的文件中包含以上内容input.yaml

import sys
from pathlib import Path
import ruamel.yaml

input = Path('input.yaml')

yaml = ruamel.yaml.YAML(typ='safe')
data = yaml.load(input)
print(f'{data["Element"][0]!r}')  # print the representation, so you can see where the newlines are

这使:

'multiple lines\ncome here\n'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从Jackson的单个文件中的多个YAML文档中反序列化POJO

JSON序列化比Python中的yaml序列化快得多吗?

如何在YAML中的“脚本:”中使用多行命令?

在mysql中插入多行

从Jekyll数据文件中的Yaml多行字符串渲染降价

如何在YAML密钥中写多行?

如何在Erlang Shell中退出多行命令序列?

yaml.dump在多行字符串中添加不需要的换行符

如何在多行中将字符串分隔并保留YAML中的空格?

如何使用PHP删除文本文件中的多行(序列)?

在Cloudformation YAML中,在多行字符串中使用Ref(?使用Fn:Sub)

Spark爆炸了多行中的多行

访问Azure Pipeline YAML中的扩展(多行)Git提交消息

如何一次在YAML文件的多行中插入同一行

如何在多行中将YAML中的字符串断开?

如何在Yaml中的多行字符串中转义哈希(#)字符?

将函数应用于R中的时间序列的多行

在YAML中,如何对多行进行评论

根据多行插入中的另一列将非标识序列分配给字段

在python中对YAML块映射序列进行排序

yamldotnet序列化中输出yaml中的null char

计算从数据框中的一列到多行序列中每个月的月数

YAML中包含引号的多行字符串

删除 ListVIew 中的多行

YAML 多行符号在 Jekyll 数据文件中不起作用

使用 yq v4.x 在 yaml 文件中插入一个属性的多行

如何使用 serde_yaml 在结构中反序列化这个 YAML

在多行字符串中,如何匹配每行以管道字符开头的新行序列

根据key向yaml文件中添加多行