Yaml简介

Yaml:"Yet Another Markup Language"(是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

appium中,yaml 是专门用来写配置文件的语言,语言很简洁、强大,格式有点类似于json,感觉要比json强大点。

语法特点:

1.大小写敏感;

2.使用缩进表示层级关系;

3.缩进时不允许使用Tab键,只允许使用空格;

4.缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。

yaml下载

https://pyyaml.org/

也可以在cmd中下载

pip install pyyaml

Yaml数据类型

yaml支持的数据结构有三种:

1.对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

2.数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

3.纯量(scalars):单个的、不可再分的值。字符串、布尔值、整数、浮点数、Null、时间、日期

创建一个例子:

egyaml.yaml

name: Tom
age: 28
spouse:
name: May
age: 26
children:
- name: kate
age: 5
- name: jeck
age: 3

数据读取:

yamlload.py

import yaml

file = open('egyaml',encoding="utf-8")
data=yaml.load(file,yaml.FullLoader)
print(data)
#输出tom的名字、年龄
print(data['name'])
print(data['age']) #输出妻子的名字、年龄
print(data['spouse'])
print(data['spouse']['name'])
print(data['spouse']['age']) #输出孩子们的名字、年龄
print(data['children'])
print(data['children'][0]['name'])
print(data['children'][0]['age']) print(data['children'][1]['name'])
print(data['children'][1]['age'])

输出结果:

{'age': 28, 'name': 'Tom', 'children': [{'name': 'kate', 'age': 5}, {'name': 'jeck', 'age': 3}], 'spouse': {'name': 'May', 'age': 26}}
Tom
28
{'name': 'May', 'age': 26}
May
26
[{'name': 'kate', 'age': 5}, {'name': 'jeck', 'age': 3}]
kate
5
jeck
3

补充:

file = open('egyaml',encoding="utf-8")
data=yaml.load(file)

运行后总出现

YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
data=yaml.load(file)

尽管是没有什么影响,但是看着别扭,YAML 5.1版本后弃用了yaml.load(file)这个用法,因为觉得很不安全,5.1版本之后就修改了需要指定Loader

data=yaml.load(file,yaml.FullLoader)这样就正常了

数据转化为yaml格式,用yaml.dump()

# -*- coding: utf-8 -*-#
import yaml
a1=[1,321.33,1,'hello',[1,2,3,'python'],]
a2={'123A':'class','No1':1,"money":13254.55,"tuple":(123),'teacher':[123,46546.225,'python']}
print(type(a1))
print(type(a2))
print(a1)
print(a2)
#转化为yaml类型
print(yaml.dump(a1))
print(yaml.dump(a2))

执行结果:

<class 'list'>
<class 'dict'>
[1, 321.33, 1, 'hello', [1, 2, 3, 'python']]
{'money': 13254.55, 'tuple': 123, 'No1': 1, '123A': 'class', 'teacher': [123, 46546.225, 'python']}
- 1
- 321.33
- 1
- hello
- - 1
- 2
- 3
- python 123A: class
No1: 1
money: 13254.55
teacher:
- 123
- 46546.225
- python
tuple: 123

python+Appium自动化:读取Yaml配置文件的更多相关文章

  1. python+Appium自动化:yaml配置capability

    场景 学习了yaml之后就是要将capability的各项参数值与代码分离开. 先创建一个capability.yaml文件,把各项参数存放在其中,然后用load()进行读取. 例子: capabil ...

  2. python的logging模块之读取yaml配置文件。

    python的logging模块是用来记录应用程序的日志的.关于logging模块的介绍,我这里不赘述,请参见其他资料.这里主要讲讲如何来读取yaml配置文件进行定制化的日志输出. python要读取 ...

  3. python笔记14-读取yaml配置文件(pyyaml)

    yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文 ...

  4. python接口自动化读取json,yaml配置文件+封装requests+unittest+HTMLRunner实现全自动化

    # coding=utf-8 import json import requests class TestApi(object): """ /* @param: @ses ...

  5. python读取yaml配置文件

    支持多种语言:python.js.golang.java.c.c++ YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写.它实质上是一种通用的数据串行化格式. 它的基本语法规则如下 ...

  6. Python+Appium自动化测试(14)-yaml配置Desired capabilities

    一,前言 在之前的appium自动化测试示例中,我们都是把构造driver实例对象的数据(即Desired Capabilities)写在业务代码里,如下: # -*- coding:utf-8 -* ...

  7. python+Appium自动化:logging配置代码分离

    配置文件信息log.conf: [loggers]keys=root,simpleExample [logger_root]level=DEBUGhandlers=consoleHandler,fil ...

  8. python的ConfigParser读取设置配置文件

    python 读写配置文件在实际应用中具有十分强大的功能,在实际的操作中也有相当简捷的操作方案,以下的文章就是对python 读写配置文件的具体方案的介绍,望你浏览完下面的文章会有所收获. pytho ...

  9. 【python接口自动化】- ConfigParser配置文件的使用

    前言:目前我们使用的绝大多数计算机程序,无论是办公软件,浏览器,甚至游戏.视频都是通过菜单界面系统配置的,它几乎成了我们使用机器的默认方式.而在python中,也有这样的一个配置模块可以把代码可配置化 ...

随机推荐

  1. Leetcode之并查集专题-684. 冗余连接(Redundant Connection)

    Leetcode之并查集专题-684. 冗余连接(Redundant Connection) 在本问题中, 树指的是一个连通且无环的无向图. 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2 ...

  2. IDEA debug漏洞第二弹(fastjson,version<1.2.47)

    首先这个漏洞调试不需要非要使用docker,本身是一个jar包的问题.所以我们可以自己写一个小java代码来直接调试. POC如下 {"name":{"@type&quo ...

  3. MongoDB安装与配置问题

    MongoDB相关 通常我们在不同情境下使用不同的数据存储方式.如果仅仅用来存储测试用的数据,推荐使用TXT CSV格式的文件,因为这两种格式的读写都非常方便, 可以很快的打开文件查看当TXT CSV ...

  4. OpenCV.CV_FOURCC

    1.c++ - how to use CV_CAP_PROP_FOURCC_ - Stack Overflow.html(https://stackoverflow.com/questions/223 ...

  5. Hadoop 单节点(或集群)基本配置信息

    1. 默认配置文件: 存放于Hadoop对应的jar包中 core-default.xml hdfs-default.xml yarn-default.xml mapred-default.xml 2 ...

  6. HTML5页面如何在手机端浏览器调用相机、相册功能

    最近在做一个公司的保险信息处理系统项目,开发微信端浏览器访问的HTML5的页面,页面中有一个<input id="input" type="file"/& ...

  7. ######【Python】【基础知识】【一些未知的知识点】######

    在查资料.看书过程中遇到的一些未知的领域.知识点: 1.模仿静态变量 可参考: https://www.runoob.com/python/python-exercise-example41.html ...

  8. 自动输入密码执行远程服务器上的java -version命令

    自动输入密码执行远程服务器上的java -version命令 for i in $(seq 1 253);do sshpass -p "W123hz" ssh weili@192. ...

  9. Photon Server初识(五) --- 客户端连接服务端

    准备:Unity开开发IDE. 一.新建Unity3D项目 导入包,在资源下新建目录 Plugins .在之前解压的SDK目录 lib中找到 Photon3Unity3D.dll,拖到新建的目前下 二 ...

  10. macos catalina安装python3

    之前跟着教程用brow安装了python3,后来发现电脑上有三个版本的python,头大. 于是用brew uninstall --force python3卸掉了python3 看到现在有两个版本 ...