YAML语言、语法

1. YAML简介

YAML(YAML Ain't Markup Language, 即YAML不是一种标记语言)是一种高可读性的数据序列化语言,可以被大多数编程语言支持使用,主要用于数据序列化、配置文件

数据序列化:可以高效的表示或描述数据及数据关系的,以便用于存储和传输。

优点:

(1)语法简单

(2)结构清晰,易于阅读

(3)功能丰富,可以描述比JSON更加复杂的结构

YAML可以看做是精简版的JSON:

YAML与JSON比较

同样的数据序列表示,YAML相较于JSON,少了{}和"",所以更加精简。

YAML可以加注释,JSON不可以加注释。

2.YAML基本语法

YAML转JSON在线编辑

2.1 大小写敏感

name键和Name键表示两个不同的键

2.2 使用缩进表示层级关系

2.3 缩进不允许使用tab,只允许空格

2.4 缩进的空格数不重要,只要相同层级的元素左对齐即可

2.5 #表示注释

3. YAML的数据类型

3.1 对象

对象:键值对的集合,又称为映射(mapping),对应JSON中的属性。

3.2 数组

数组:一组有序的值,又称为列表。

写法一:

注意 - 后面有一个空格

写法二:

3.3 纯量

纯量:单个的,不可再分的值,比如整数、浮点数、布尔值等基本数据类型,以及字符串都属于纯量

4. 锚点和引用

重复的内容在YAML中可以使用&来定义锚点,使用*来引用锚点。

参考链接:YAML简介_哔哩哔哩_bilibili

5.Python中读YAML文件和写YAML文件

5.1 python读取YAML文件——yaml.load

现有路径"configs/jta_all_visual_cues.yaml"下YAML文件:

读取YAML文件,并将其转换为Python的dic字典格式

import yaml

with open("configs/jta_all_visual_cues.yaml", "rt") as reader:
    config = yaml.load(reader, Loader=yaml.Loader)
print(config)
print(type(config))
print(config["SEED"])
print(config["TRAIN"]["batch_size"])

得到:

5.2 python写进YAML文件——yaml.dump

现有一个空的文件demo.yaml

import yaml

"""读取YAML文件,转换为python中的字典"""
with open("configs/jta_all_visual_cues.yaml", "rt") as reader:
    config = yaml.load(reader, Loader=yaml.Loader)

"""将字典写入demo.yaml中"""
with open("demo.yaml", 'w') as f:
        yaml.dump(config, f)

执行完毕后,将demo.yaml文件的内容为:

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值