一、pyyaml
简介及简单使用
1、pyyaml
模块的安装
pip3 install pyyaml
2、pyyaml
模块的简单使用
我们初始化一个yaml
文件如下:
house:
family:
name: Doe
parents:
- John
- Jane
address:
number: 34
street: Main Street
读取 yaml
文件:
import yaml
f = open('example.yml',encoding="utf-8")
x = yaml.load(f)
print(x)
执行结果如下:
{'house': {'family': {'name': 'Doe', 'parents': ['John', 'Jane']}, 'address': {'number': 34, 'street': 'Main Street'}}}
解析 yaml
文件:
# coding=utf-8
import yaml
project = {'name': 'Silenthand Olleander',
'race': 'Human',
'traits': ['ONE_HAND', 'ONE_EYE']
}
ret = yaml.dump(project)
print(ret)
print(type(ret))
project = ("a", "b", "c")
ret = yaml.dump(project)
print(ret)
print(type(ret))
project = {"a": 1,"b": 2}
ret = yaml.dump(project)
print(ret)
print(type(ret))
执行结果如下:
name: Silenthand Olleander
race: Human
traits: [ONE_HAND, ONE_EYE]
<class 'str'>
!!python/tuple [a, b, c]
<class 'str'>
{a: 1, b: 2}
<class 'str'>
二、使用 pyyaml
配置不同的工作环境
假设我们有两个不同的工作环境,开发环境 dev
和生产环境 prod
,在这两个不同的环境下有部分环境配置是有区别的,我们可以使用 pyyaml
将他们配置在一起,解析时再加以区分。
pyyaml
文件如下所示:
active: dev
dev:
MainQueue: main_queue_dev
prod:
MainQueue: main_queue_prod
其中,active: dev
表示当前的工作环境是 dev
。
pyyaml
文件解析脚本如下所示:
def load_environment():
f = open('params.yaml', encoding='utf-8')
x = yaml.load(f)
if x['active'] == 'dev':
return x['dev']
elif x['active'] == 'prod':
return x['prod']
执行结果:
{'MainQueue': 'main_queue_dev'}
完整示例代码地址:示例