大家好,我是钢铁老豆,今天要给大家介绍另外一种配置文件格式 YAML。之前介绍过的INI语法有些老古董,而JSON的标点符号多又无法注释,所以钢铁老豆写配置文件,更喜欢用YAML格式,真的超级方便,而且天生就是为Python的数据类型而生!
0.什么是YAML?
YAML
YAML是"YAML Ain't Markup Language"的递归缩写,它是一种直观的数据序列化格式,广泛用于配置文件和数据交换。它的主要特点是可读性高,结构清晰。
1.YAML的基本语法
基本语法:
- 使用冒号:后跟一个空格来分隔键和值。
- 使用缩进来表示层级关系,通常使用两个空格作为标准缩进。
- 列表项使用短横线-开头。
字典:
person:
name: John Doe
age: 30
列表:
fruits:
- Apple
- Banana
- Cherry
嵌套结构:
employees:
- name: John Doe
job: Developer
skills:
- Python
- Git
- name: Jane Smith
job: Designer
skills:
- Photoshop
- Illustrator
数据类型:
- 字符串通常不需要引号,但如果包含特殊字符,则可以使用单引号'或双引号"。
- 布尔值:true, false
- 整数和浮点数:123, 3.14
- null值可以使用~或者null表示。
引用:
使用&来创建一个锚点(即别名),*来引用这个锚点。这在重复使用相同的数据时非常有用。
defaults: &defaults
adapter: postgres
host: localhost
development:
<<: *defaults
database: dev_db
多文档支持:
YAML文件可以包含多个文档,每个文档由---分隔。
# Document 1
---
name: John
age: 34
---
# Document 2
name: Jane
age: 28
2.Python如何读写YAML
PyYAML是一个Python的第三方库,用于解析和生成YAML格式的数据。
安装PyYAML
pip install pyyaml
读取YAML文件
假设我们有一个名为config.yaml的文件,内容如下:
language: Python
version: 3.8
libraries:
- numpy
- pandas
- matplotlib
使用PyYAML读取这个文件:
import yaml
with open('config.yaml', 'r') as f:
data = yaml.safe_load(f)
print(data)
写入YAML文件
如果我们要生成一个YAML文件,可以使用如下代码:
data = {
'language': 'Python',
'version': 3.9,
'libraries': ['numpy', 'pandas', 'matplotlib']
}
with open('new_config.yaml', 'w') as f:
yaml.dump(data, f)
以上就是YAML的一些基础到高级的特性和解析方式。钢铁老豆想问问大家,处理YAML文件时有没有遇到什么难题或有趣的事情?欢迎在评论区分享你的故事!
最后别忘了,如果你觉得这篇文章对你有帮助,欢迎点赞+收藏+评论+关注,每天学习一点Python小知识,无论基础、模块、数据分析、深度学习和Ai,总有你感兴趣的。我是钢铁老豆,一个30岁转行IT、自学成为算法工程师、想用Ai点亮孩子小小世界的Pythoner。