yaml语法(yaml语法片段)

本篇文章给大家谈谈yaml语法,以及yaml语法片段对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

yaml语法错误

做自测试使用yaml文姿纳件做界面要素配置现问题经自尝试实现xpath式读龋代码项迹前没尤其使用xpath现yaml读取错情况悔御

[img]

YAML 文件介绍

YAML 是一种可读性非常高,与程序语言数据结构非常接近。同让拍时具备丰富的表达能力和可扩展性,并且易于使用的数据标记语言。

YAML是 "YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。

这么命名的方式,表示 YAML 强调的不是标记,而是数据本身。

YAML 参考了其他多种语言,包括:XML、C语言、Python、Perl 以及电子邮件格式 RFC2822。

YAML 发布与 2001 年,之前并不出名,现在逐渐开始流行。测试圈中坦散羡,主要应用于自动化测试过程,用来进行数据驱动的数据存储载体。

基本语法规则(很接近 Python 的语法规则):

支持的数据格式:

以下是 YAML 数据格式的示例:

对象

转换为Python字典格式为

YAML也支持另一种对象的写法,将所有的键值对写成一个行内对象

转换为Python字典格式为

数组

一组连词线开头的行,构成一个数组

转换为Python

也可以通过缩进空格来表示多维数组

转换为Python的列表

当然,也可以采用行内掘颤表示法

转换为Python

纯量

纯量是最基本的、不可再分的值。 以下数据类型都是常见的纯量。

纯量一般表示如下

转换为Python

yaml 文件通过 pyyaml 库转换后就是 Python 中对应的数据类型。直接进行操作即可,相较从 excel 中读取数据全部是字符串的方式来说,处理更方便。相对于 json 格式,可读性更高。

YAML (Yet Another Markup Language) - Kummer话你知

YAML是一个标记语言, 读音 "yamel",或者"雅梅尔"。

类似于其他的标记语言一样,YAML希望能提供一个标准格式,用来存储复杂的结构化数据,YAML的设计者希望YAML能满足下面几个条件:

**用途: ** YAML经常用在数据的交换与存储方面,特别是这些数据同时需要人和机器都去访问的时候。比如配置文件、模型元数据文件等方面。

从上面我们可以看出,YAML要解决的问题实际上与XML和JSON等技术一样,那既然有了XML和JSON,为什么还需要YAML呢?

我想在机器处理上,XML和JSON应该都没有太大的短板,最大的问题在于方便人的处理上,比如XML,任何一个数据前后都要加上一个标签,这样对于人来说太繁琐。

XML格式的描述

YAML格式的描述,显然YAML格式对人来说更友好一些

说明: 另外,对于嵌套数据结构,YAML支持类似于Python的方式,使用缩进来代替Json或XML的各种括号或标签,在可阅读性方面有很大的改善。

实验地址:

注: 上面的网站提供将YAML转换为JSON的在线工具。

在开始介绍YAML详细的语法前,我们先看一个例子,描述了几门程序设计语言课程与老师的信息,大家看看,即使不知道YAML语法,是不是大概也能猜出下面一段YAML说明了什么信息?

这是在YAML中使用#进行行注释

基本类型包括字符串型,数值型,bool型,空型,日期时间型等

默认行为: 字符串可以写成多行,从第二行棚销开始,必须有一个单空格缩进。换行符会被转为空格。

等价于json { str: '这是 一个 多行 字符串' }

保留埋明换行: |

等价于json { str: '这是\n一个\n多行\n字符串\n' }

折叠换行:

等价于json { str: '这是 一个 多行 字符串\n' }

末尾换行的去留: +(保留末尾换行) -(去除末尾换行)

等价于json { str: '这是 一个 多行 字符串\n\n\n', str2: '这是 一个 多行 字符串' }

用true或false表示bool值,用~表示空值

整数或浮点数,就直接使用文字量描述,如12 或 3.1415926

日期采用复合 iso8601 格式的年、月、日表示

时间采用 ISO8601 格式。

YAML允许使用两个!!来表示强制类型转换,比如将bool类型的true转换为字符串类型的true

复弯和告杂一点的数据类型包括数组和Key/Value对

键值对用:隔开( 注:冒号后面要加一个空格 ),多个key/value对可以用来描述一个对象,比如

连词线开头的连续几行,则构成了一个数组,比如

对于嵌套数据结构,YAML支持两种方式

YAML用法详解

  近期在调试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合并和参考会被剖析器自动展开。

yaml基本语法

YAML:YAML Ain't Markup Language,即YAML不是标记语言。不过,在开发的这种语言时,YAML的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)

YAML是一个可读性高的用来表达资料序列的格式。YAML参考了其他多种语言,包括:XML、C语言、 Python、Perl以及电子邮件格式RFC2822等。Clark Evans在2001年在首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者,目前很多最新的软件比较流行采用此格式的文件存放配置信息,如:ubuntu,anisble,docker,kubernetes等

YAML 官方网站瞎枯键:

ansible 官网:

yaml语言特性归纳如下

1、大小写敏感

2、使用缩进表示层级关系

3、禁止使用tab缩进,只能使用空格键

4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级

5、使用#表示注释

6、字符串可以不用引号标注

YAML 支持以下磨巧常败指用几种数据类型:

key对应value

标量是最基本的,不可再分的值,包括:

字典由多个key与value构成,key和value之间用 :分隔, 并且 : 后面有一个空格,所有k/v可以放在一行,或者每个 k/v 分别放在不同行

格式:

使用缩进方式

范例:

列表由多个元素组成,每个元素放在不同行,且元素前均使用"-"打头,并且 - 后有一个空格, 或者将所有元素用 [ ] 括起来放在同一行

也可以写成以 - 开头的多行

数据里面也可以包含字典

不同行,行以-开头,后面有一个空格# A list of tasty fruits

范例:YAML 表示一个家庭

XML:Extensible Markup Language,可扩展标记语言,可用于数据交换和配置

JSON:JavaScript Object Notation, JavaScript 对象表记法,主要用来数据交换或配置,不支持注释

YAML:YAML Ain't Markup Language YAML 不是一种标记语言, 主要用来配置,大小写敏感,不支持tab

关于yaml语法和yaml语法片段的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表