13.python笔记之pyyaml模块
2016-07-17 10:43
363 查看
Date:2016-03-25
Title:13.Python笔记之Pyymal模块使用
Tags:Python
Category:Python
博客地址:www.liuyao.me
作者:刘耀
YAML
YAML是一种用来表达数据序列的编程语言,它的主要特点包括:可读性强、语法简单明了、支持丰富的语言解析库、通用性强等。Ansible与Saltstack环境中配置文件都以YAML格式存在。下面是saltstack的配置:
要通过YAML描述与Python的对应关系,从而方便读者了解YAML的层次及结构,最常见的是映射到Python中的列表(List)、字典(Dictionary)两种对象类型。下面通过块序列与块映射的示例详细说明。
例如:
或者:
例:
YAML块序列与块映射是可以自由组合在一起的,它们之间可以相互嵌套,通过非常灵活的组合,可以帮助我们描述更加复杂的对象属性,
案例:
例如:
将字符串转入yaml格式放入yaml文件
完毕!
Title:13.Python笔记之Pyymal模块使用
Tags:Python
Category:Python
博客地址:www.liuyao.me
作者:刘耀
YAML
YAML是一种用来表达数据序列的编程语言,它的主要特点包括:可读性强、语法简单明了、支持丰富的语言解析库、通用性强等。Ansible与Saltstack环境中配置文件都以YAML格式存在。下面是saltstack的配置:
file_roots: base: - /srv/salt/ dev: - /srv/salt/dev prod: - /srv/salt
要通过YAML描述与Python的对应关系,从而方便读者了解YAML的层次及结构,最常见的是映射到Python中的列表(List)、字典(Dictionary)两种对象类型。下面通过块序列与块映射的示例详细说明。
1.块序列描述
块序列就是将描述的元素序列到Python的列表(List)中例如:
#/!/usr/bin/env python #__liuyao__ import yaml data=yaml.load(""" - one - two - three - four """) print (data) 用“-”来分隔列表中的每个元素,运行结果如下: # python yamltest.py ['one', 'two', 'three', 'four']
或者:
#/!/usr/bin/env python #__liuyao__ import yaml data=yaml.load(""" - - one - two - three - four - - list - dict - set """) print (data) 显示如下: python yamltest.py [['one', 'two', 'three', 'four'], ['list', 'dict', 'set']] #返回的是list类型
2.块映射描述
块映射就是将描述的元素序列到Python的字典(Dictio-nary)中,格式为“键(key):值(value)”。例:
#/!/usr/bin/env python #__liuyao__ import yaml data=yaml.load(""" hero: liuyao: 21 mayun: 55 """) print (type(data)) print (data) 结果: <type 'dict'> {'hero': {'liuyao': 21, 'mayun': 55}}
YAML块序列与块映射是可以自由组合在一起的,它们之间可以相互嵌套,通过非常灵活的组合,可以帮助我们描述更加复杂的对象属性,
案例:
#注意空格和缩进 #/!/usr/bin/env python #__liuyao__ import yaml data=yaml.load(""" - hero: liuyao: 21 mayun: 55 - name: liuyao: - 12 - 33 """) print (data) 结果: [{'hero': {'liuyao': 21, 'mayun': 55}}, {'name': {'liuyao': [12, 33]}}]
例如:
新建install.yaml文件 输入一下内容 name: Tom Smith age: 37 spouse: name: Jane Smith age: 25 children: - name: Jimmy Smith age: 15 - name1: Jenny Smith age1: 12 #yaml读 import yaml with open('disk.sls')as f: s=yaml.load(f) print(s) {'spouse': {'name': 'Jane Smith', 'age': 25}, 'name': 'Tom Smith', 'children': [{'name': 'Jimmy Smith', 'age': 15}, {'age1': 12, 'name1': 'Jenny Smith'}], 'age': 37}
将字符串转入yaml格式放入yaml文件
file='test.yaml' data={'host': {'ip01': {'two': '192.168.1.254', 'one': '192.168.1.2'}, 'ip00': '192.168.1.1'}, 'soft': {'apache': 2.2, 'php': 5.3, 'mysql': 5.2}} f=open(file,'w') yaml.dump(data,f) f.close()
完毕!
相关文章推荐
- python学习——多进程
- Python jiba 分词
- Python的自我修炼之路(一)
- Python学习进程(1)Python简介
- python学习——进程和线程
- python学习——序列化
- jupyter notebook配置文件修改注意事项--远程访问
- 【micropython】用python来进行BadUSB的USB-HID测试(含无线控制)
- 编程语言学习3——python
- Ipython Notebook升级版Jupyter Notebook远程服务器配置
- python中多线程中GIL的介绍
- Python打印print函数深入解析
- python 实现 knn分类算法 (Iris 数据集)
- python内置函数 2
- 配置python tab键自动补全
- 【转】开篇python--明白python文件如何组织,理解建立源文件
- Python读取文件
- Learning Python 008 正则表达式-003 sub()方法
- Python入门笔记之字符串
- 如何在 Python 3.4 上安装 python-docx