yaml文件格式说明

yaml简介

yaml文件的后缀为.yml或者.yaml。
是一个可读性高,用来表达数据序列的格式。YAML的意思是:仍是一种标记语言,但为了强调这种语言以数据为中心,而不是以标记语言为重点。

基本语法

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用tab键,只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左右对齐即可
  • #表示注释,从这个字符一直到行尾,都会被解释器忽略
  • 锚点&:标注一个内容,锚点名称自定义
  • 引用*:使用被标注的内容<<:*锚点名
  • 在yaml里,用on、1、true来表示true,用off、0、false来表示false
  • yaml中,空值可以用null或者~来表示。

YAML支持的数据结构

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes)/ 字典(dictionary)
    eg:
    对象的一组键值对,使用冒号结构表示
    name:Tom
    age: 12
    eg:
    yaml也允许另一种写法,将所有键值对写成一个行内对象
    hash: {
    name: Tom
    age: 12
    }
  • 数组:一组按次序排列的值,又称为序列(sequence)/ 列表(list)
    eg:
    一组连词线开头的行,构成一个数组
    animal
    - Cat
    - Dog
    eg:
    数组也可以采用行内表示法
    animal: [Cat, Dog]
  • 纯量(scalars):单个的、不可再分的值
    eg:
    1 字符串 布尔值 整数 浮点数 Null
    2 时间日期
  • 复合结构:对象和数组可以结合使用,形成复合结构
    eg:
    languages:
    - Ruby
    - Perl
    - Python
    websites:
    YAML: yaml.org
    Ruby: ruby-lang.org
    Python: python.org
    Perl: use.perl.org

补充说明:纯量
数值直接以字面量的形式表示
number: 12.30
布尔值用true和false表示
isSet: true
null用 ~ 表示
parent: ~
时间采用 ISO8601 格式
iso8601: 2001-12-14t21:59:43.10-05:00
日期采用复合 iso8601 格式的年、月、日表示
date: 1976-07-31
YAML 允许使用两个感叹号,强制转换数据类型
e: !!str 123
f: !!str true

引用

  1. 引用会用到 &锚点符合和 *星号符号,&用来建立锚点,<< 表示合并到当前数据, 用来引用锚点。
jack: &jack
  name: Jack
  age: 20

dept:
  id: D15D554F6D68A4E88E
  <<: *jack

上面最终相当于如下:

jack:
  name: Jack
  age: 20

dept:
  id: D15D554F6D68A4E88E
  name: Jack
  age: 20
  1. 文件内引用,引用已经定义好的变量
base.host: https://chenpi.com
add.person.url: ${base.host}/person/add

单文件多配置

#公共配置
spring:
  profiles:
    active: pro # 指定使用哪个文档块


#开发环境配置
spring:
  profiles: dev # profiles属性代表配置的名称
server:
  port: 8080


#生产环境配置
spring:
  profiles: pro
server:
  port: 8081

文本块

如果你想引入多行的文本块,可以使用|符号,注意在冒号:|符号之间要有空格。双引号能转义特殊字符:

person:
  name: |
    Hello Java!!
    I am fine!
    Thanks! GoodBye!
person:
  name: "Hello Java!!\nI am fine!\nThanks! GoodBye!"

显示指定类型

显示指定某些值的类型,可以使用!(感叹号)显式指定类型。
!单叹号通常是自定义类型,!!双叹号是内置类型。

# 指定为字符串
string.value: !!str HelloWorld!
# !!timestamp指定为日期时间类型
datetime.value: !!timestamp 2021-04-13T02:31:00+08:00
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的yaml文件格式是一种用于序列化和反序列化数据的文件格式YAML是一种人类可读的数据序列化格式,它使用简洁的语法来表示数据结构。YAML文件可以包含各种数据类型,包括字符串、数字、布尔值、列表和字典等。在Python中,可以使用yaml模块来读取和保存yaml文件。通过导入yaml模块,可以使用官方的导入方法来兼容Windows和Linux平台。使用yaml模块的load函数可以读取yaml文件的内容,并将其转换为Python对象。例如,可以使用以下代码读取一个yaml文件并打印其内容: ```python import yaml with open("test.yaml", "r") as yaml_file: data = yaml.load(yaml_file) print("data_type:", type(data)) print("data_content:\n", data) ``` 这段代码使用了yaml模块的load函数来读取test.yaml文件的内容,并将其转换为Python对象。然后,可以通过打印data的类型和内容来查看读取到的数据。 #### 引用[.reference_title] - *1* [yaml——python数据序列化文件格式解析包的介绍和使用](https://blog.csdn.net/ZH13114130815/article/details/126930216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python基础——python解析yaml类型文件](https://blog.csdn.net/weixin_54696666/article/details/115034027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值