Yaml文件内容—示例2:
从上述示例文件内容可以看到 Yaml 数据结构:
1). 对象:键值对的集合(简称 "映射或字典")
例如:family 和 address 这两个对象后面分别有对应的键值对集合。
2). 键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔
例如:
family 对象中的 key 为 name 与其对应的 value 值 Smile_Family 之间是使用空格分隔的。
address 对象中的 key 为 province 与其对应的 value 值 BeiJing 之间是使用空格分隔的。
3). 数组:一组按序排列的值(简称 "序列或列表"),数组前加有 “-” 符号,符号与值之间需用空格分隔
例如:
parents 中的 John 和 Jane
children 中的 Lily 和 Frank
4). 纯量(scalars):单个的、不可再分的值。例如:字符串、bool值、整数、浮点数、时间、日期、null等
None值可用null也可用 ~ 表示;
yaml文件内容如下:
Python解析输出为:
这个例子输出一个字典,其中value包括所有基本类型
Yaml文件内容如下:
Python解析输出为:悄局
Yaml文件内容如下:
Python输出为:
如果字符串没有空格或特殊字符,不需要加引号,但如果其中有空格或启则让特殊字符,则需要加引号。
这里要注意单引号和双引号的区别:
单引号中的特殊字符转到 Python 会被转义,也就是到最后是原样输出;
双引号不会被 Python 转义,到最后是输出了特殊字符盯搭;
Yaml文件内容如下:
Python输出:
近期在调试SONIC上基于Ansible的PTF测试平台时,使用到了YANML配置语言,此处稍作解释,汇总一下YAML的语法及基本使用方法。
YAML ( /ˈjæməl/ ,尾音类似 camel 骆驼)是一个可读性高,用来表达数据序列的格式。YAML参考了其他多种语言,包括: C语言 、 Python 、 Perl ,并从 XML 、电子邮件的数据格式(RFC 2822 )中获得灵感。上述介绍引用自 维基百科 ,通俗的讲判唯,YAML是专门用来写配置文件的语言,非常简洁和强大,远比 JSON/XML格式方便。YAML允许在层次结构中存储结构化数据。YAML 旨在以人为和机器可读,并且开销最小。YAML 规范可以在 yaml.org 找到,官方还提供了一个便捷的 YAML小抄 。
再次强调,字符串不需要包在引号之内。有两种方法书写多行文字(multi-line strings),一种掘早培可睁租以保存新行(使用|字符),另一种可以折叠新行(使用>字符)
和保存新行不同的是,换行字符会被转换成空白字符。而引领空白字符则会被自动消去。
常量值最基本的数字、字符串、布尔值等等
在python中,会将上述键值对解析为一个字典
上述键值对可以嵌套,从而实现更加复杂的数据结构:
在python中,会将其解析为嵌套的字典结构:
在python中,会将其解析为字典嵌套列表的复合数据结构:
为了维持文件的简洁,并避免数据输入的错误,YAML提供了结点参考(*)和散列合并(<<)参考到其他结点标签的锚点标记(&)。参考会将树状结构加入锚点标记的内容,并可以在所有数据结构中运作(可以参考上面"ship-to"的示例)合并只有散列表可以使用,可以将键值自锚点标记复制到指定的散列表中。当数据被instantiate合并和参考会被剖析器自动展开。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)