python读取yaml配置文件

yaml是专门用来写配置文件的标记语言,非常简洁和强大,比ini更加直观更方便。yaml可以作为python的项目配置文件,使用第三方模块yaml可以读取yaml文件,下面是一份简单的配置文件示例

db.yaml

mysql:
    host: 127.0.1.1   # ip
    user: test        # 用户名
    port: 3306        # 端口
    db: test
    password: pw

redis:
    host: 127.0.0.1
    port: 3679
    db: 0
    pwd: 3435

db_ip:
    - 192.168.0.1
    - 192.168.0.2
    - 192.168.0.2

yaml对大小写敏感,使用缩进来表示层次关系,这一点与python相同,一个缩进可以是2个空格或者4个空格,注意不要使用tab键代替空格。上面这份配置文件等价于python中的字典

{'db_ip': ['192.168.0.1', '192.168.0.2', '192.168.0.2'],
 'mysql': {'db': 'test',
           'host': '127.0.1.1',
           'password': 'pw',
           'port': 3306,
           'user': 'test'},
 'redis': {'db': 0, 'host': '127.0.0.1', 'port': 3679, 'pwd': 3435}}

python没有提供专门的标准库来读取yaml文件,需要安装第三方库

pip3 install PyYaml

读取示例如下

import yaml

f = open('db.yaml')
data = f.read()
yaml_reader = yaml.load(data)

print(yaml_reader['mysql'])    # 以字典的形式输出mysql下的所有配置
print(yaml_reader['redis']['port'])     # 输出某一项
print(yaml_reader['db_ip'])     # db_ip配置是一个数组

程序输出结果

{'host': '127.0.1.1', 'user': 'test', 'port': 3306, 'db': 'test', 'password': 'pw'}
3679
['192.168.0.1', '192.168.0.2', '192.168.0.2']

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案