pyyaml 模块

一、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'}

完整示例代码地址:示例

你可能感兴趣的:(Python3,模块)