目录
[TOC]
一, yaml 介绍
yaml 全称 Yet Another Markup Language(另一种标记语言). 采用 yaml 作为配置文件, 文件看起来直观, 简洁, 方便理解. yaml 文件可以解析字典, 列表和一些基本变量的数据结构.
1.1 yaml 语法规则
大小写敏感
使用缩进表示层级关系
缩进时不允许使用 tab 键, 只可以使用空格
缩进时空格数目不重要, 只要相同元素左侧对其即可
# 表示当行注释
1.2 yaml 环境搭建
-- 安装 pip 之后, 执行以下操作
pip install pyyaml
二, yaml 文件格式
2.1 字典
- # 普通字典
- key1:value
- # 嵌套字典
- key2:
- sub_key1:value1
- sub_keys:value2
2.2 列表
- # 下面同级的 para1,para2 以及 para3 在同一列表中
- - para1
- - para2
- - para3
2.3 普通变量
yaml 配置文件, 可以解析数字, 字符串, 布尔类型数据, 时间日期格式, 也可以对数字, 布尔类型数据做强制转换, 使其在解析成为字符串类型的数据
2.3.1 yaml 之 None 的表示方法
- # 在 yaml 中~ 表示 None
- ~
2.3.2 yaml 强制转换数据类型
- # 在 yaml 配置中,!!str data 表示把数据 data 强制转换为 str 类型
- age: !!str 18
2.3.3 yaml 日期格式表示
- # 时间和日期格式均为 iso8601
- # 日期表示
- data_today:2018-04-22
- # 时间格式
- # 下面代表北京时间 2018,04,22 的 16:55:30, 因为北京位于东八区, 所以后面加了 08:00, 时间的秒可以写到小数点后两位
- time_now:2018-04-22T16:55:30+08:00
三, yaml 文件读取
导入 yaml 模块, 需使用官方的导入方法, 可以兼容 windows 和 linux 平台
import yaml
try:
from yaml import CLoader as Loader, CDumper as Dumper
- except ImportError:
- from yaml import Loader, Dumper
- yaml_file= open("path", "r")
- data = yaml.load(yaml_file)
四, 使用案例
4.1 待操作 yaml 文件
- # 文件名 test.yaml
- bind1:
- hostname: ubuntu test
- remote_users:
- - user1:
- username: root
- auth_type: ssh-key
- password: 123
- - user2:
- username: gungun
- auth_type: ssh-password
- password: gungun123
- groups:
- - bj_group
- user_profiles:
- - gungun
- - xiangqiangun
4.2 yaml 文件读取示例
import yaml
try:
from yaml import CLoader as Loader, CDumper as Dumper
- except ImportError:
- from yaml import Loader, Dumper
- yaml_file = open("test.yaml",'r')
- data = yaml.load(yaml_file)
- print("data_type:", type(data))
- print("data_content:\n", data)
打印结果:
- data_content:
- {'bind1': {'user_profiles': ['gungun', 'xiangqiangun'], 'hostname': 'ubuntu test', 'groups': ['bj_group'], 'remote_users': [{'username': 'root', 'auth_type': 'ssh-key', 'user1': None, 'password': 123}, {'username': 'gungun', 'auth_type': 'ssh-password', 'user2': None, 'password': 'gungun123'}]}}
来源: http://www.bubuko.com/infodetail-2571203.html