Yaml-学习与使用

Yaml是一种文件格式

python中使用yaml需要安装Yaml模块 : pip install pyyaml

yaml格式:

dic1:
  name: zff
  age: 15
dic2:
  name: ttt
  age: 98
dic3: "测试数据"
list1:
  - 1
  - 2
  - 3
  - 4

用冒号+空格 : 代表对象/字典
用 岗+空格 - 代表列表
使用yaml 需要导包使用load方法

import yaml
# 打开yaml文件
file = open('test.yaml','rb')
#使用yaml
data = yaml.load(stream=file, Loader=yaml.FullLoader)
print(data)
print(type(data))

在这里插入图片描述
使用ddt +file_data循环读取yaml数据

import pytest
from ddt import ddt, file_data

@ddt
class TestYaml():
    @file_data('test.yaml')
    def test_1(self,**kwargs):
        a = kwargs['data1']
        b = kwargs['data2']
        c = kwargs['data3']
        print(a)
        print(b)
        print(c)

if __name__ == '__main__':
    pytest.main(['-s','testyaml2.py'])

yaml数据

-
  data1: a
  data2: b
  data3: c
-
  data1: 1
  data2: 2
  data3: 3
-
  data1: aaaa
  data2: bbb
  data3: ccc



基于yaml驱动selenium:

#正确的账号名密码
-
  url: http://XXXX.sm.chinajzhl.com/User/Login
  text:
    - 1709348XXXX
    - 123456
  element:
    input: /html/body/div[2]/div[1]/input
    pasw: /html/body/div[2]/div[2]/input
    button: /html/body/div[2]/button[2]
#错误的账号名密码
-
  url: http://XXXXX.sm.chinajzhl.com/User/Login
  text:
    - 1709348XXXX
    - 123457
  element:
    input: /html/body/div[2]/div[1]/input
    pasw: /html/body/div[2]/div[2]/input
    button: /html/body/div[2]/button[2]
import pytest
from ddt import ddt, file_data
from selenium import webdriver
import time

@ddt
class TestYaml():
    @file_data('test.yaml')
    def test_1(self,**kwargs):
        driver = webdriver.Chrome()
        driver.get(kwargs['url'])
        driver.find_element_by_xpath(kwargs['element']['input']).send_keys(kwargs['text'][0])
        driver.find_element_by_xpath(kwargs['element']['pasw']).send_keys(kwargs['text'][1])
        driver.find_element_by_xpath(kwargs['element']['button']).click()
        time.sleep(5)
        driver.quit()


if __name__ == '__main__':
    pytest.main(['-s','testyaml2.py'])
在比较 `ruamel-yaml-conda` 和 `ruamel.yaml` 两个软件包时,可以从它们的用途、发布渠道以及兼容性等方面进行区分。 ### 包来源目的 `ruamel.yaml` 是一个 Python 库,用于解析和生成 YAML 文件。它支持最新的 YAML 规范,并提供对注释、锚点等高级特性的支持,同时允许用户以更灵活的方式处理 YAML 数据[^1]。这个库最初是为了替代 PyYAML 而创建的,后者在某些情况下不能很好地保留 YAML 文档中的结构信息。 另一方面,`ruamel-yaml-conda` 是专门为 Conda 构建的一个版本,旨在确保其他 Conda 包的良好集成[^2]。Conda 是一种流行的跨平台包管理系统,广泛用于数据科学和机器学习领域。`ruamel-yaml-conda` 可能会包含特定于 Conda 的调整或依赖项,以便更好地适应 Conda 环境的需求。 ### 安装方式 对于 `ruamel.yaml`,可以通过 pip 来安装: ```bash pip install ruamel.yaml ``` 而 `ruamel-yaml-conda` 则是通过 Conda 进行分发,通常使用如下命令来安装: ```bash conda install -c conda-forge ruamel-yaml-conda ``` 这里 `-c conda-forge` 指定了从 conda-forge 渠道获取包,这通常是社区维护的一个高质量包仓库。 ### 兼容性和使用场景 当你的项目已经基于 Conda 并且需要 Conda 管理的其他软件包保持一致性时,选择 `ruamel-yaml-conda` 可能更为合适。这是因为 Conda 会处理好所有相关的依赖关系,并且可能提供了针对特定环境优化过的构建。 如果你正在开发一个不依赖 Conda 的纯 Python 项目,或者希望利用到 `ruamel.yaml` 提供的所有功能而不受 Conda 环境限制,则应该选用标准的 `ruamel.yaml` 包。此外,如果需要最新版的功能或是修复了某些问题的补丁,你可能会发现 `ruamel.yaml` 更新更频繁,能够更快地获得这些更新。 ### 总结 简而言之,两者的核心功能相似,都是为了处理 YAML 文件。然而,根据所使用的开发环境(即是否采用 Conda)以及对包管理的具体需求,可以选择最适合的那个。如果你的工作流程中已经包含了 Conda,那么使用 `ruamel-yaml-conda` 将有助于简化依赖管理和环境配置;否则,直接使用 `ruamel.yaml` 就足够了。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值