`

Yaml基础笔记

阅读更多
Wiki:
YAML(IPA: /ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达资料序列的格式。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822。Clark Evans在2001年在首次发表了这种语言[1] ,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。目前已经有数种编程语言或脚本语言支援(或者说解析)这种语言。

YAML是"YAML Ain't a Markup Language"(YAML不是一种置标语言)的递回缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种置标语言),但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。

 

最新版本为1.2,官方说明地址: http://www.yaml.org/spec/1.2/spec.html

使用方式:作为配置文件,数据交换格式,序列化对象存储,测试数据文件,

 

一个简单的示例:

 

---
receipt:     Oz-Ware Purchase Invoice
date:        2007-08-06
customer:
    given:   Dorothy
    family:  Gale
   
items:
    - part_no:   A4786
      descrip:   Water Bucket (Filled)
      price:     1.47
      quantity:  4

    - part_no:   E1628
      descrip:   High Heeled "Ruby" Slippers 
      price:     100.27
      quantity:  1

bill-to:  &id001
    street: | 
            123 Tornado Alley
            Suite 16
    city:   East Westville
    state:  KS

ship-to:  *id001   

specialDelivery:  >
    Follow the Yellow Brick
    Road to the Emerald City.
    Pay no attention to the 
    man behind the curtain.
...

 

 

基本技巧:

1,列表

使用- 表示,也就是用短杠+空白字符作为起始。

另外还有一种内置格式(inline format)可以选择──用方括号围住,并用逗号+空白区隔(类似JSON的语法)。比如:shopping: [milk, pumpkin pie, eggs, juice]

 

2,映射

--- # 區塊形式

person:

    name: John Smith

    age: 33

--- # 內置形式

person: {name: John Smith, age: 33}

 

3,重复元素

使用&id001先标记,然后后面用*id001指针引用

 

  1. # & 的作用,它表示一个“锚点标记”,其它节点可以使用“*”或“<<: *”来引用它的值  
  2. node3: &node3  
  3.   a: 001  
  4.   b: 002  
  5.   
  6. # * 的作用,指node4的内容与node3完全一致  
  7. node4:  
  8.   *node3  
  9.     
  10. # <<: * 的作用,指node5的内容包含但不完全相同于node3的值。  
  11. node5:  
  12.   <<: *node3  
  13.   c: 003  

 

#眼部雷射手術之標準程序
---
- step:  &id001                  #定義錨點標籤 &id001
    instrument:      Lasik 2000
    pulseEnergy:     5.4
    pulseDuration:   12
    repetition:      1000
    spotSize:        1mm

- step:
     <<: *id001                  # 合併鍵值:使用在錨點標籤定義的內容
     spotSize:       2mm         # 覆寫"spotSize"鍵值

- step:
     <<: *id001                  # 合併鍵值:使用在錨點標籤定義的內容
     pulseEnergy:    500.0       # 覆寫鍵值
     alert: >                    # 加入其他鍵值
           warn patient of 
           audible pop

 

4,需要换行书写的字符串,两种方式:

再次强调,字串不需要包在引号之内。

保存新行(Newlines preserved)
poetry: |                                  #譯者注:這是一首著名的五行民謠
  There 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      #所以他小心翼翼的吐在天花板上

根据设定,前方的引领空白符号(leading white space)必须对齐,以便和其他资料或是行为(如范例中的缩排)明显区分。

折叠新行(Newlines folded)
--- >
  Wrapped text         #摺疊的文字
  will be folded       #將會被收
  into a single        #進單一一個
  paragraph            #段落
  
  Blank lines denote   #空白的行代表
  paragraph breaks     #段落之間的區隔

和保存新行不同的是,换行字元会被转换成空白字符,空行被转换成换行,而前导空白字符则会被自动消去。上面会变成两行。

 

5,混合使用:

阶层化的元素

于列表中使用映射
- {name: John Smith, age: 33}
- name: Mary Smith
  age: 27
于映射中使用列表
men: [John Smith, Bill Jones]
women:
  - Mary Smith
  - Susan Williams



本人博客已搬家,新地址为:http://www.pycoding.com/
分享到:
评论

相关推荐

    汇总的yaml文件个人笔记

    1. YAML 基础语法: YAML 文件以其简洁、易读的格式著称,采用键值对的形式存储数据。例如: ``` key: value ``` 请注意,空格是 YAML 的关键,用来表示层次关系。缩进的空格数量(通常是两个)决定了数据的...

    SpringBoot基础入门笔记

    内容概要:包含SpringBoot——初始SpringBoot,SpringBoot的基本配置(多环境开发、yaml等)、整合第三方技术(JUnit,Mybatis,SSM)适合人群:有一定的maven,SpringMVC基础文件内容:压缩包分为两部分,笔记和...

    第二周第一天的学习笔记-yaml

    ### YAML在Kubernetes中的应用详解 #### 一、概述 YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,常用于配置文件和数据交换。...这为我们在生产环境中高效利用Kubernetes奠定了坚实的基础。

    spring boot基础笔记

    Spring Boot基础笔记知识点详细说明: 1. Spring Boot简介:Spring Boot是一个开源Java框架,用于快速、轻松地创建独立的、生产级别的基于Spring的应用程序。它支持微服务架构,目的是简化新Spring应用的初始搭建...

    码尚 python+requests+pytest+allure+yaml+DDT+logs 接口自动化框-各分支源码总汇

    接口自动化框架(1-4)(5)(6)(7)(8)(终极版...6接口自动化框架封装之规范YAML测试用例&接口关联封装改进&基础路径封装改进 7热加载封装以及断言封装 8数据类型处理以及DDT数据驱动封装 9异常日志与BaseUrl封装

    尚硅谷springboot笔记

    6. **YAML与Properties配置**:SpringBoot支持YAML和Properties两种配置格式,YAML以更友好的格式提供了配置信息,而Properties则更符合传统Java开发者习惯。 7. **Web开发**:SpringBoot内置了Spring MVC,可以...

    SpringBoot经典学习笔记

    SpringBoot是Java后端开发中的一个热门框架,由Pivotal团队开发,...通过"SpringBoot经典学习笔记",你可以系统性地学习和实践SpringBoot,提升你的Java后端开发能力,为构建高效、稳定、易维护的项目打下坚实基础。

    springcloud笔记.pdf

    通过这本笔记,你可以从理论到实践全面学习SpringCloud,为构建高可用、易扩展的微服务架构打下坚实基础。在学习过程中,不断实践和探索,将理论知识转化为实际能力,提升个人在微服务领域的专业素养。

    Ansible学习笔记.pdf

    Playbook是Ansible的剧本文件,用YAML编写,定义了一系列任务(tasks),用于描述如何配置和管理远程主机。通过playbook,可以实现复杂的自动化流程。 10. **Handler与标签** Handlers在playbook中用于处理触发...

    springboot学习入门提升笔记.rar

    这份“springboot学习入门提升笔记”应该包含了从基础到进阶的全方面学习内容,非常适合那些想要快速上手或者希望深化SpringBoot理解的开发者。 SpringBoot的核心特性包括自动配置、嵌入式Web服务器、起步依赖和...

    SpringBoot学习笔记完整教程

    Spring Boot 是一个基于 Spring 框架的快速开发...这个完整的 Spring Boot 学习笔记涵盖了从基础到进阶的各个方面,通过学习和实践,你可以掌握 Spring Boot 开发的核心技能,从而高效地构建高质量的 Java 后端应用。

    第一周第五天的学习笔记

    Pod是Kubernetes中最基础的资源单位,它可以包含一个或多个容器。下面详细介绍Pod的相关概念及其配置: 1. **创建 Pod**: ```shell kubectl run pod-demo --image=busybox ``` 2. **导出 Pod 的 YAML 文件**:...

    linux运维笔记:Saltstack自动化运维与实战.docx

    Linux 运维笔记:Saltstack 自动化运维与实战 Saltstack 是一个服务器基础架构集中化管理平台,它基于 Python 语言实现,采用 C/S 架构,结合轻量级消息队列(ZeroMQ)与 Python 第三方模块(Pyzmq、PyCrypto、...

    Springboot017学生读书笔记共享.zip

    1. Spring Boot基础:如起步配置、自动配置、Starter POMs的使用。 2. 整合数据库:如JPA、MyBatis与Spring Boot的集成。 3. Web开发:包括RESTful API设计、Thymeleaf模板引擎、WebSocket等。 4. 配置管理:如使用...

    谷粒商城完整版笔记pdf

    1. **Spring Boot**:作为微服务的基础框架,Spring Boot简化了Spring应用程序的创建和配置。它集成了各种依赖,并提供了一种快速启动应用的方式。 2. **Spring Cloud**:作为微服务治理的框架,Spring Cloud提供了...

    Spring Boot 笔记.rar

    Spring Boot 集成了 Spring Security,提供了安全控制的基础框架。默认情况下,它为所有 HTTP 请求提供认证和授权保护。 10. **测试支持** Spring Boot 提供了测试支持,包括 `@SpringBootTest` 注解用于启动整个...

    Spring Boot核心技术-笔记-pdf版.pdf

    Spring Initializr是一个在线生成Spring Boot项目结构的工具,通过选择技术栈、版本等,可以快速生成一个基础的Spring Boot项目结构,便于开发者快速开始编码。 8. **Web开发** Spring Boot对Web开发提供了很好的...

    顶级自动化运维工具Ansible教材与笔记

    本教材和笔记将涵盖Ansible的基础用法,如安装和配置、编写Playbooks、使用Inventory、理解和使用模块,以及如何进行错误排查。此外,还将深入讲解Ansible的最佳实践,如角色的创建和复用、模板引擎Jinja2的使用、...

    Springboot开发-demo笔记

    5. **YAML/Properties 配置**:Spring Boot 支持 YAML 或 Properties 文件进行配置,使得配置更易于阅读和管理。`application.yml` 或 `application.properties` 是最常见的配置文件名。 6. **Spring Data JPA**:...

    kubernetes笔记.rar

    这本"Kubernetes权威指南"的学习笔记涵盖了从基础到高级的Kubernetes知识,适合初学者和有经验的开发者,无论你是想了解Kubernetes的基础概念,还是希望深入研究其工作机制,都能从中受益。2018年11月的更新意味着它...

Global site tag (gtag.js) - Google Analytics