AML(YAML Ain’t Markup Language)是一种数据序列化格式,常用于配置文件。YAML 旨在易于人类阅读和编写,同时也易于机器解析和生成。YAML 的基本语法规则包括:
缩进:YAML 使用缩进来表示层级关系,不允许使用制表符(Tab)进行缩进,只能使用空格。默认缩进是两个空格,但建议在整个文件中保持一致。
键值对:YAML 中的数据以键值对(key: value)的形式组织。冒号后面必须跟一个空格。
列表:列表中的项用破折号(-)开始,且同一列表项保持相同的缩进级别。
对象/映射:键值对可以组成对象或映射,键和值之间用冒号(:)和空格分隔,对象或映射中的项以缩进表示层级。
字符串:字符串可以不加引号,但如果字符串中包含特殊字符(如冒号、空格、引号等),则需要用引号(单引号或双引号)括起来。YAML 支持多行字符串,使用 | 或 > 来定义。
注释:以 # 开头的行为注释,会被解析器忽略。
布尔值:YAML 中的布尔值可以直接用 true 或 false 表示,注意大小写。
数字:YAML 支持整数和浮点数,且无需特殊格式。
空值:使用 null 或 ~ 表示空值,建议使用 null 以保持一致性`在这里yaml
…
# 简单的键值对
name: John Doe
age: 30
# 布尔值
is_student: false
# 列表
hobbies:
- reading
- swimming
- coding
# 对象/映射
address:
street: 1234 Elm St
city: Springfield
state: IL
zip: 62704
# 字符串
description: "这是一个包含特殊字符的字符串: 冒号(:)和空格"
# 多行字符串
poem: |
There once was a man from Nantucket,
Who kept all his cash in a bucket,
But his daughter, named Nan,
Ran away with a man,
And as for the bucket, Nantucket.
# 空值
…一下是python 代码 写入YAML 文件示例…
# 创建一个字典,它代表了你想要写入YAML文件的数据
data = {
'person': {
'name': 'John Doe',
'age': 30,
'married': True,
'children': ['Jane Doe', 'Doe Jr.'],
'pets': None,
'cars': [
{'model': 'Audi A4', 'mpg': 25.5},
{'model': 'Toyota Prius', 'mpg': 50.1}
]
}
}
# 指定你想要创建的YAML文件的名称
filename = 'person.yaml'
# 使用yaml.dump()函数将字典写入文件
with open(filename, 'w') as file:
yaml.dump(data, file, allow_unicode=True)
print(f'YAML文件 {filename} 已创建并写入数据。')
…机器学习解析…示例…
omegaconf 库加载yaml 文件
首选安装
pip install omegaconf
…
#导入库
from omegaconf import OmegaConf
# 加载配置文件
cfg = OmegaConf.load("C:\\sdd\\person.yaml")
# print(cfg)
# 访问配置数据
print(cfg.person.children)