`

yaml在python中实战

阅读更多

和GNU一样,YAML是一个递归着说“不”的名字。不同的是,GNU对UNIX说不,YAML说不的对象是XML。
YAML不是XML。
为什么不是XML呢?因为:

  • YAML的可读性好。
  • YAML和脚本语言的交互性好。
  • YAML使用实现语言的数据类型。
  • YAML有一个一致的信息模型。
  • YAML易于实现。

上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点:
YAML可以基于流来处理;
YAML表达能力强,扩展性好。

总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。
更多的内容及规范参见http://www.yaml.org
YAML语法规则:
http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
http://www.yaml.org/
语法
结构通过空格缩进来展示。列表里的项用"-"来代表,字典里的键值对用":"分隔.
这几乎就是所有的语法了.
比如……
一般YAML文件扩展名为.yaml。比如:yaml_example.yaml

将yaml写成配置脚本test.yaml ,以下介绍如何读写yaml配置。

开始使用

1.首先安装yaml模块

pip3 install pyyaml

2.编写yaml配置文件 yaml_example.yaml

name: junxi
age: 18
spouse:
    name: Rui
    age: 18
children:
    - name: Chen You
      age: 3
    - name: Ruo Xi
      age: 2

3.编写解析yaml文件的python程序 yaml_example.py

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
__author__ = 'junxi'

import sys

# sys.path.insert(0, 'D:/program/python-腾讯课程/0-01-python其他模块学习/')

import yaml

f = open('yaml_example.yaml')
content = yaml.load(f)

print type(content)
print '修改前: ', content   # 可以看出整个Yaml配置文件是一个字典, 里面可以包含字典和列表
content['age'] = 17     # 根据Key修改对应的值
content['children'][1]['age'] = 1
print '修改后: ', content

程序输出的结果为:

<type 'dict'>
修改前:  {'age': 18, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 2, 'name': 'Ruo Xi'}]}
修改后:  {'age': 17, 'spouse': {'age': 18, 'name': 'Rui'}, 'name': 'junxi', 'children': [{'age': 3, 'name': 'Chen You'}, {'age': 1, 'name': 'Ruo Xi'}]}

 



作者:君惜丶
链接:http://www.jianshu.com/p/f21b9306a68d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
分享到:
评论

相关推荐

    pytestDemo:使用 Python+Requests+Pytest+YAML+Allure 实现接口自动化

    相关接口项目:项目说明本项目在实现过程中,把整个项目拆分成请求方法封装、HTTP接口封装、关键字封装、测试用例等模块。首先利用Python把HTTP接口封装成Python接口,接着把这些Python接口组装成一个个的关键字,再...

    Python自动化测试实战篇(3)优化unittest批量自动化接口测试代码,ddt驱动+yaml实现用例调用,输出测试报告

    在本篇Python自动化测试实战中,我们将探讨如何利用unittest框架进行接口测试的批量自动化,并通过引入ddt(data-driven testing)库以及yaml配置文件来优化测试用例的管理和调用。此外,我们还将学习如何生成详细的...

    码尚 python+requests+pytest+allure+yaml+DDT+logs 接口自动化框-各分支源码总汇

    接口自动化框架(1-4)(5)(6)(7)(8)(终极版...6接口自动化框架封装之规范YAML测试用例&接口关联封装改进&基础路径封装改进 7热加载封装以及断言封装 8数据类型处理以及DDT数据驱动封装 9异常日志与BaseUrl封装

    深入Python学习:基于菜鸟教程的实战源码解析

    项目包含62个文件,其中38个为Python源代码文件(.py),此外还包括文本文件(.txt)、XML配置文件(.xml)、Markdown文档(.md)、YAML数据文件(.yaml)、reStructuredText文件(.rst)、Git忽略配置文件(....

    python自动化运维

    5. **持续集成/持续部署(CI/CD)**:Python在CI/CD流程中扮演重要角色,例如Jenkins、GitLab CI/CD等工具可以结合Python脚本实现代码构建、测试和部署自动化。pipenv或Poetry可以帮助管理依赖,确保环境一致性。 6. ...

    Python自动化测试实战篇(4)selenium+unttest+ddt实现自动化用例测试,模拟用户登陆点击交互测试

    在本篇Python自动化测试实战中,我们将探讨如何利用selenium、unittest和ddt库来构建一个功能完善的自动化测试框架,模拟用户登录、点击等交互行为,并通过assert进行断言检查,确保测试用例的准确性和覆盖率。...

    Python程序语言从入门到深入.rar_Python入门_python 从入门_python 教程_python语言

    在学习过程中,“Python程序语言从入门到深入.chm”可能包含了Python的基本语法、常用库的使用、项目实战等全面内容。而“www.pudn.com.txt”可能是提供额外的学习资源链接或者阅读笔记。 深入学习Python,你还需要...

    源码_python登录_python_QQ批量登录_账号登录_批量登录_

    在Python编程领域,批量登录是一项常见的任务,尤其在自动化测试、数据分析或者运维场景下。本项目专注于使用Python实现QQ账号的批量登录功能,这涉及到网络请求、数据加密、模拟登录等多个知识点。 首先,我们需要...

    用Python管理linux

    在IT行业中,Python语言因其简洁明了的语法和强大的库支持而被广泛应用于各种领域,包括系统管理和自动化。本文将深入探讨如何利用Python来管理Linux系统,并分享一些实用的Python脚本实现,以提高运维效率。 一、...

    从DevOps工程师的角度学习Python.zip

    9. **Python实战项目** "python-for-devops_main.zip"可能包含一系列实践项目,比如模拟自动化部署、监控系统搭建或配置管理工具的实现,这些都是巩固理论知识并提升实际操作能力的好方法。 综上所述,"从DevOps...

    python策略回测系统.zip

    这个压缩包可能包含了上述组件的实现,例如Python源代码文件(`.py`)、配置文件(`.json`或`.yaml`)、测试数据文件(`.csv`)以及可能的文档文件(`.md`或`.txt`)。解压后,通过阅读代码和文档,你可以了解到具体...

    work:工作以测试和练习python,netmiko,textfsm,yaml,jinja2

    在Python中,YAML常用于存储配置信息、数据库模型或其他结构化数据,便于程序理解和加载。 **Jinja2**: Jinja2是一个强大的、现代的、设计者友好的模板语言,用于生成动态HTML、XML等Web页面。它是Python的标准...

    yolov5训练代码和训练后模型python

    8. **配置文件**:在YOLOv5项目中,配置文件(如`yaml`文件)用于存储模型参数、训练设置等信息,方便用户根据需求调整。 9. **多GPU训练**:利用PyTorch的DataParallel或DistributedDataParallel,可以实现模型的...

    Python-TensorFlowforDeepLearningBook的配套代码

    此外,这也能帮助读者熟悉TensorFlow的API用法,提升其在机器学习项目中的实战能力。 总之,"dlwithtf-master"压缩包是Python和TensorFlow深度学习学习者的重要资源,它提供了丰富的实例和实践经验,有助于读者从...

    基于Flask框架的API对接项目实战演示源码

    项目概述:本项目是一个基于Python的Flask框架的API对接实战演示源码。它包含共45个文件,其中主要编码语言为Python,并辅助包含HTML用于前端展示。具体文件类型分布如下:Python源文件(36个),YAML配置文件(2个...

    简单但绝不简陋的 Python3 爬虫项目,集合 HelloGitHub 所有平台的账号信息.zip

    从本项目中你可以看到:**熟悉的 [Python 基础语法](521xueweihan/python)**、**如何编写爬虫**、**操作数据库**、**常用第三库**、**分析网页**、**解析接口**、**编写单元测试**、**mock 请求**、**异常监控和管理...

    洛理自动上报脚本python

    在当前的信息化社会中,许多学校和企业为了确保人员的健康安全,会要求每日或定期提交个人健康状况报告。这个脚本就是为了简化这一过程而设计的,通过自动化的方式,减少手动填写表单的时间和工作量。 脚本的实现...

    考试类精品--k8s工具,适用于cka考试,主要包括脚本和yaml文件.zip

    主要包含的是脚本和YAML文件,这些都是在Kubernetes集群管理和应用部署中不可或缺的部分。” 【知识点详解】: 1. **Kubernetes(K8s)**: Kubernetes 是一个开源容器编排系统,用于自动化容器化的应用程序部署、...

Global site tag (gtag.js) - Google Analytics