1,介绍
YAML是一种标记语言, 全称是Ain't Markup Language。
YAML是一个可读性高的用来表达资料序列的格式。YAML参考了其他多种语言包括XML、C语言、Python、Perl以及电子邮件格式RFC2822等。Clark Evans在2001年在首次发表了这种语言另外Ingy dtNet与Oren Ben-Kiki也是这语言的共同设计者。
2,特点
YAML的可读性好
YAML和脚本语言的交互性好
YAML使用实现语言的数据类型
YAML有一个一致的信息模型
YAML易于实现
YAML可以基于流来处理
YAML表达能力强扩展性好
3,语法
1)规则
缩进:yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。 一定不能使用tab键
冒号: 每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)
短横线:想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分
注意事项
1),如果参数是以空格开始或结束的字符串,应使用单引号把他包进来。如果一个字符串参数包含特殊字符,也要用单引号包起来。
e.g.
- bat:
- website:{ baidu: ' http://www.bai''u.com'}
2), 当字符串较长时,可以使用特殊字符头外加一个缩进表示长字符串,可以换行
3),在yaml里,用on、1、true来表示true,off、0、false来表示false
4), 在yaml里,用#做注释
5), 如果你在yaml文件中看到了.开头的字符串,这个字符串代表的是分类头
e.g.
- all:
- .general:
- tax: 19.6
- mail:
- webmaster: webmaster@example.com
4,一些示例
# > 的作用,以缩进对齐来判断是否为一段文字,也就是说,一旦缩进与上一行不一致,则认为是一个新行。
# node1的例子中,第一行“Ther... door”,
# 第二行“ "Please... floor"”,
# 第三行“So...So2”
node1: >
Ther once was a man from Darjeeling
Who got on a bus bound for Ealing
It said on the door
"Please don't spit on the floor"
So he carefully spat on the ceiling
So2
# | 的作用,它表示之后的文字,每一行均为一个新行。
node2: |
Ther once was a man from Darjeeling
Who got on a bus bound for Ealing
It said on the door
"Please don't spit on the floor"
So he carefully spat on the ceiling
# & 的作用,它表示一个“锚点标记”,其它节点可以使用“*”或“<<: *”来引用它的值
node3: &node3
a: 001
b: 002
# * 的作用,指node4的内容与node3完全一致
node4:
*node3
# <<: * 的作用,指node5的内容包含但不完全相同于node3的值。
node5:
<<: *node3
c: 003
# !! 的作用,强迫转换类型。
#输出:
#{"node6"=>{
# "a"=>#<YAML::PrivateType:0x9df6d40 @value="123", @type_id="float">,
# "b"=>#<YAML::PrivateType:0x9df6ae8 @value="true", @type_id="str">,
# "c"=>true
#}
#注意:c的值为布尔型。
node6:
a: !!float 123
b: !!str true
c: True
# 二进制内容的表示
node7: !!binary |
xxxxxxxxxxxxx
xxxxxxxxx
xxxxx
node8_value: &node8_value {id: 10000, code: item_manager, name: 项目经理}
#自定解析类型,YAML某Key的Value一般为Array或Hash,但如果需要将Value解析为其它的自定义类型,可以使用该方法。
#步骤:
# 1、首先定义 MyCustClass 类,如:
# class MyCustClass
# attr_accessor :id
# attr_accessor :code
# def initialize v_hash
# @id = v_hash["id"]
# @code = v_hash["code"]
# end
# end
# 2、向YAML注册解释类型,如:
# YAML::add_domain_type("yaml.org,2002", 'MyCustClass') do |type, val|
# MyCustClass.new(val)
# end
# 3、OK,当YAML文件加载时,YAML将自动将“node8”的值解析为MyCustClass类型。
# 4、测试一下,x["node8"] >> #<MyCustClass:0x9df1c88 @code="item_manager", @id=10000>
# x["node8"].code >> "item_manager"
node8: !MyCustClass
<<: *node8_value
# ? 的作用,用来明确的表示多个词汇组成的键值
# a["node9"] => {{"a"=>1, "b"=>2}=>[1, 2], "c"=>3}
node9:
? {a: 01, b: 02}
: [1, 2]
c: 3
5, 参考
http://www.yaml.org/
http://blog.chinaunix.net/uid-22776959-id-5749385.html
http://www.cnblogs.com/moonandstar08/p/6435640.html
语法跟用法可参考: http://sqycyl.iteye.com/blog/859589
相关推荐
2.1 字符串 2.2 布尔值 2.3 整数 2.4 浮点数 2.5 空 2.6 日期 3.1 对象 3.2 数组 3.3 复合结构
主要介绍了Python集中化管理平台Ansible介绍与YAML,简单说明了集中化管理平台Ansible的功能与YAML语言的基本语法与基本使用技巧,需要的朋友可以参考下
springboot 的配置文件加载顺序 ... 本系列校训 用免费公开视频,卷飞培训班哈人!...YAML 简介 YAML 对象、数组、List、Map、Set的行内写法与缩进写法 YAML 位置 第一个位置 第二个位置 其它位置
yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言。yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件,看了yaml后,发现这个更直观,更方便,有点类似于json...
数据及配置文件之争 数据及文件通常有三种类型: 配置文件型:如ini,conf,properties文件,适合存储简单变量和配置项,最多支持两...YAML简介 YAML(YAML Ain’t Markup Language)即一种反标记(XML)语言。强调
尚硅谷_SpringBoot_配置-yaml简介 尚硅谷_SpringBoot_配置-yaml语法 尚硅谷_SpringBoot_配置-yaml配置文件值获取 尚硅谷_SpringBoot_配置-properties配置文件编码问题 尚硅谷_SpringBoot_配置-@...
尚硅谷_SpringBoot_配置-yaml简介 尚硅谷_SpringBoot_配置-yaml语法 尚硅谷_SpringBoot_配置-yaml配置文件值获取 尚硅谷_SpringBoot_配置-properties配置文件编码问题 尚硅谷_SpringBoot_配置-@...
09、尚硅谷_SpringBoot_配置-yaml简介 10、尚硅谷_SpringBoot_配置-yaml语法 11、尚硅谷_SpringBoot_配置-yaml配置文件值获取 12、尚硅谷_SpringBoot_配置-properties配置文件编码问题 13、尚硅谷_SpringBoot_配置-@...
09、尚硅谷_SpringBoot_配置-yaml简介 10、尚硅谷_SpringBoot_配置-yaml语法 11、尚硅谷_SpringBoot_配置-yaml配置文件值获取 12、尚硅谷_SpringBoot_配置-properties配置文件编码问题 13、尚硅谷_SpringBoot_...
09、_SpringBoot_配置-yaml简介 10、_SpringBoot_配置-yaml语法 2 L( g0 e) J) F# r 11、_SpringBoot_配置-yaml配置文件值获取 , y( ] x3 r% o7 ]5 i 12、_SpringBoot_配置-properties配置文件编码问题 13、_...
11 章 - 保存和加载YAML 简介字符串插值Ruby IO 特性第 12 章 - 对象的新类时间类介绍哈希简介范围介绍第 13 章 - 创建新类,更改现有类创建一个新类实例变量与类变量Ruby 中的初始化过程向现有
简介YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。YAML 语言的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格
项目简介本项目主要演示了将swagger-editor编辑好的swagger.yaml或swagger.json,转换为asciidoc,继而转换成其他各种格式,如:HTML、PDF、EPUB3、DOCBOOK等主要用到了两个maven插件:swagger2markup-maven-...
该项目是Yolov8数据处理器的基础上增加了很多数据增强的功能,可以将标注好的数据集进行重命名(如0001,0002),分配数据集比例,并生成一个yaml文件,数据增强(数据集*40!!!),最后得到一个可直接用于yolov8训练...
它既包含已部署到Kubernetes的webb应用程序,又包含用于以各种形式部署它的不同的YAML文件。 警告 配置文件正在从我的私有容器注册表中提取图像。 为了使其适合您,您需要基于_App目录中的Dockerfile构建映像,并将...
1. R3 Corda 简介 Corda_networkyaml 2. R3 Corda Configure file network.yaml文件是用于建立Corda DLT网络的基本配置文件。该文件包含了基础结构和网络规范相关的所有信息。 3. network.yaml文件结构 ...
您可以使用JSON / YAML导入/导出工作流程定义。 这是的AWS Step Functions插件。 简介电影如下快速开始访问 。 选择保存选项(例如,稍后确定...) 选择菜单[其他]-[插件] 单击[添加],然后单击[自定义...] 输入 ...
项目简介: DbFaker是一个基于Python开发的数据生成工具,旨在数据库层面批量生成具有逻辑关联的仿真数据。该项目由纯Python代码编写,结合Shell脚本,提供了高效、便捷的数据生成解决方案。 技术构成: - 主要编程...
管道X PipelineX:Python程序包,用于构建可用于生产环境的管道,以对Kedro,MLflow等进行实验PipelineX简介PipelineX是一个Python软件包,旨在通过模块化,可重用且易于使用的功能来使机器学习项目高效进行实验。...