百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

玩转数据处理利器:学会使用 YAML 文件轻松处理数据

liuian 2025-02-09 13:14 44 浏览

测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。

YAML文件处理

什么是YAML文件

YAML全称其实是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写,所以它强调的是数据本身,而不是以标记为重点。

YAML 是一种可读性非常高,与程序语言数据结构非常接近。同时具备丰富的表达能力和可扩展性,并且易于使用的数据标记语言。

为什么要使用YAML文件

其实YAML文件也是一种配置文件,但是相较于ini,conf配置文件来说,更加的简洁,操作简单,还能存放不同类型的数据,而像ini存储的值就都是字符串类型,读取之后还要手动转换。

YAML的基本语法规则

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。(可以将你的ide的tab按键输出替换成4个空格)
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • # 表示注释

YAML 的数据结构

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

对象类型

对象的一组键值对,使用冒号结构表示,会转换成 Python 中的字典。

YAML:



animals:dog

Python:



{'animals': 'dog'}

YAML:



person:{name:Tom, age:20, gender:male}

Python:



{'person': {'name': 'Tom', 'age': 20, 'gender': 'male'}}

数组类型

数组类型使用 - 为前缀,每个元素独占一行,通过缩进关系表示层级包含关系,会转换成 Python 中的列表。

YAML:



-one-two-three-four-five

Python:



['one', 'two', 'three', 'four', 'five']

YAML:



--1-2-3--4-5-6

Python:



[[1, 2, 3], [4, 5, 6]]

纯量类型

纯量类型是最基本的、不可再分的值;类似基本数据类型。

  • 字符串, 不需要使用双引号包裹
  • 布尔值,true,True,false,False都可以
  • 整数
  • 浮点数
  • 时间,时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
  • 日期,日期必须使用ISO 8601格式,即 yyyy-MM-dd
  • Null,~ 表示 Null

YAML:



int: 12float: 12.3string: petsbool: trueNone: nulltime: 2001-12-14t21:59:43.10-05:00date: 2018-03-21

Python:



{   'int': 12,    'float': 12.3,    'string': 'pets',    'bool': True,    'None': None,    'time': datetime.datetime(2001, 12, 14, 21, 59, 43, 100000, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400))),    'date': datetime.date(2018, 3, 21)}

复杂结构

YAML:



cool_list:  - 10  - 15  - 12
hard_list:  - {key: value}  - [1,2,3]  - test:      - 1      - 2      - 3
twice_list:  -    - {a: AA}    - {b: BB}    - {c: CC}

Python:



{    'cool_list': [10, 15, 12],    'hard_list': [        {'key': 'value'},        [1, 2, 3],        {            'test': [1, 2, 3]        }    ],    'twice_list':[        [            {'a': 'AA'},            {'b': 'BB'},            {'c': 'CC'}        ]    ]}

Tips:有 : 后面的内容就解析成字典,有 - 后面的内容就解析成列表的元素

YAML 文件处理

Python 中,可以使用第三方模块 PyYAML 来处理 YAML 文件。

安装 PyYAML 模块



pip install pyyaml

读取 YAML 文件

YAML 模块使用 safe_load() 方法读取 yaml 文件,在读取文件之前,和普通文件一样,需要先将文件打开。



import yaml
# 读取 YAML 文件, 以前面复杂结果数据为例with open('data.yaml', 'r') as file:    data = yaml.safe_load(file)
# 处理读取到的数据print(data['cool_list'])print(data['hard_list'][2]['test'])

写入 YAML 文件

YAML 模块使用 safe_dump() 方法向 yaml 文件中写入数据,在写入文件之前,也需要先将文件打开。



import yaml
# 要写入的数据data = {    'key1': 'value1',    'key2': 'value2',    'key3': {        'key4': 'value4'    }}
# 写入 YAML 文件with open('output.yaml', 'w') as file:    yaml.safe_dump(data, file)

相关推荐

电脑蓝屏维修(电脑蓝屏维修店可以修吗)

电脑蓝屏可能是由于硬件故障、系统崩溃或驱动程序问题引起的。首先可以尝试重启电脑,如果仍然出现蓝屏,可以尝试进入安全模式进行诊断。检查硬件连接是否松动,清理内部灰尘,更新系统和驱动程序,修复系统文件以及...

联想电脑官网价格(联想电脑官网价格表)

这两个价格都比较高,官网标的指导价,实体店运行成本高,都是联想的代理商,非联想自营。建议先去实体店体验,再在主流电商参考价格。联想官网入口是:http://www.lenovo.com.cn/  联...

复制到u盘的文件不见了(复制在u盘的内容不见了怎么回事)

U盘里的文件如果不见了,可以先检查一下自己的电脑是不是中毒了。检查的方法很简单,直接进行扫描就行了,如果有病毒一般会显示出来的,进行查杀,查杀完了之后进行重启电脑,然后再读取U盘,一般文件就会显示出...

qq对战平台官方版(qq对战平台什么时候开放)

在我的电脑文件夹里面先打开War进游戏,然后退出,再用腾讯对战平台打开就可以打开了,不用谢我啦,祝各位玩的愉快啦,睡觉去了~~~~~~~~顺便说下,我的ID是九尾人柱力,玩的可以加我首先安装IPX协...

tp link路由器手机设置教程(tp-link路由手机设置)
  • tp link路由器手机设置教程(tp-link路由手机设置)
  • tp link路由器手机设置教程(tp-link路由手机设置)
  • tp link路由器手机设置教程(tp-link路由手机设置)
  • tp link路由器手机设置教程(tp-link路由手机设置)
破解qq空间(破解qq空间访问权限的软件)

空间设置了访问权限,所以不是好友,或是不知道问题密码的人,是进不去的!没有可以强行进入的方法,因为涉及他人隐私问题,除非本人对你开放。一般限制访问QQ空间访问权限会有三种情况:1、仅自己。2、QQ...

手机怎么把qq空间关了(手机qq空间怎么关掉)
  • 手机怎么把qq空间关了(手机qq空间怎么关掉)
  • 手机怎么把qq空间关了(手机qq空间怎么关掉)
  • 手机怎么把qq空间关了(手机qq空间怎么关掉)
  • 手机怎么把qq空间关了(手机qq空间怎么关掉)
联想win7原版(联想正版win7原版)

要还原联想笔记本自带的Win7系统,首先需要进入电脑的BIOS界面,将启动项设置为光驱或U盘。然后将联想笔记本自带的恢复盘或安装盘插入电脑,并重启电脑。接着按照提示进行操作,选择还原系统选项,等待系统...

bonjour软件有用吗(bonbon是啥软件)

1.bonjour软件是苹果公司在其开发的操作系统MacOSX10.2版本之后引入的服务器搜索协议所使用的一个商标名。2.安装了类似的itunes的软件以后,电脑上就会出现Bonjour软件...

笔记本电脑开机蓝屏无字(笔记本屏幕蓝屏什么字也没有)

初步怀疑是电脑温度过高导致的问题。出现蓝屏毛病的原因很多:1、电脑蓝屏是由于病毒破坏系统文件,导致系统故障进而出现蓝屏。2、电脑超频过度引起电脑蓝屏,这也可能涉及到下面的温度过高引起的蓝屏。3、内存条...

文件格式转换器免费版(文件格式转换器免费版下载安装)

一般来说,使用全能格式转换器转换文件的步骤大致如下:1.打开全能格式转换器,并点击“添加文件”按钮,选择您要转换的文件。2.在“输出格式”选项中,选择您想要将文件转换成的格式。3.如果需要,您可...

口碑最好的随身wifi品牌(随身wifi十大排名)

哪个牌子最好用性价比最高一目了然!格行设备价格:69/99/109/139/168(性价比高)芯片:进口马维尔芯片套餐:双网设备,套餐价格一致,随用随充续航:3000毫安18小时左右 33...

新买的台式电脑没声音(新买的台式机没有声音)

解决方法如下:1、查看主板的声卡驱动装没装上。2、驱动装好了,在右下角的小喇叭有没有,如果有,鼠标放在上面,右击就会看到声音的各种设置,如果没看到小喇叭,进入设备管理器看一下声音的硬件上是否有黄色标记...

dlink路由器设置密码步骤(dlink路由器设置教程)
  • dlink路由器设置密码步骤(dlink路由器设置教程)
  • dlink路由器设置密码步骤(dlink路由器设置教程)
  • dlink路由器设置密码步骤(dlink路由器设置教程)
  • dlink路由器设置密码步骤(dlink路由器设置教程)
三星笔记本u盘启动快捷键(三星笔记本u盘启动设置)

开机出现“SAMSUNG”画面时按F2进入BIOS设置,找到【Advanced】选项下,将快速启动“FastBIOSMode”项选为“Off”2.按F10键保存退出并重启,插入U盘,再次按F2键进入B...