YAML基础教程

语法注意

  1. 大小写敏感
  2. 缩进表示层级
  3. 缩进用空格,不能用tab
  4. 空格数不重要,重要的是对齐
  5. '#'表示注释

可以表示的数值

  • 纯量(scalar):浮点、整型、时间戳、字符串。
  • 列表
  • 字典

在Python中使用

# 安装
pip install pyyaml

# 导入包
import yaml


# 可以使用优化输出,更好的显示字典
import pprint
pp = pprint.PrettyPrinter(indent=4)

表示纯量

boolean: TRUE
float: 1.11
int: 123
string: 'aaa'
date: 2011-11-20 # 日期必须是ISO 8601格式,yyyy-MM-dd
datetime: 2011-11-20T10:11:20+08:00  # 时间也是一样,时间和日期中间用T连接,最后用+代表时区

整个读出来是个字典

导入yaml文件内容:

with open("a.yaml", "r") as stream:
	pp.pprint(yaml.safe_load(stream))

表示列表

  • -开头,同级的是一个列表
  • 也可用[]表示一个列表
number:
	- 1
	- 2
	- 3
# number: [1, 2, 3]

# 用 [] 表示
d: [1, 2, 3]

表示字典

dist:
	k1: v1
	k2: v2

引用

&锚点和*别名,可以用来引用

account: &ac
	user: root
	pass: root

db:
	driver: mysql
	<<: *ac

我们只看db,结果就是:
'db': {driver: mysql, pass: root, user: root}

如果不加<<:

db:
	driver: mysql
	account: *ac

结果:
db: {account: {pass: root, user: root}, driver: mysql}

posted @ 2026-05-04 08:58  Changersh  阅读(12)  评论(0)    收藏  举报