Python怎么使用PyYAML库读写yaml文件


本篇内容介绍了“Python怎么使用PyYAML库读写yaml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!YAML,Yet Another Markup Language的简写,通常用来编写项目配置,也可用于数据存储,相比conf等配置文件要更简洁。支持的数据类型:字典、列表、字符串、布尔值、整数、浮点数、Null、时间等基本语法规则:1、大小写敏感2、使用缩进表示层级关系3、相同层级的元素左侧对齐4、键值对用冒号 “:” 结构表示,冒号与值之间需用空格分隔5、数组前加有 “-” 符号,符号与值之间需用空格分隔6、None值可用null 和 ~ 表示7、多组数据之间使用3横杠—分割8、# 表示注释,但不能在一段代码的行末尾加 #注释,否则会报错注意:网上查找到各种博客都提到yaml缩进时不能使用tab键,但我在pycharm编辑器里实际使用时是可以使用tab键进行缩进的,读写时并没有报错!python没有自带的处理yaml文件的库,需要下载第三方库PyYAML 或 ruamel.yaml ,这里我们安装PyYAML。yaml中的字典格式如下:读取字典代码:读取结果:{‘os’: ‘Android’, ‘osVersion’: 10, ‘account’: {‘username免费云主机域名‘: ‘xiaoqq’, ‘password’: 123456}, ‘deviceName’: None, ‘appPackage’: None}
Android
10
{‘username’: ‘xiaoqq’, ‘password’: 123456}
xiaoqq
None
None
True
从读取结果可以看出:1,读取出来的数据不会改变原数据类型,即yaml里是什么数据类型,读出来就是什么类型。2,Loader=yaml.FullLoader参数不写的话对结果不会有影响,但运行时会出现警告信息。3,yaml.load(f.read(), Loader=yaml.FullLoader)也可以写成yaml.load(f, Loader=yaml.FullLoader),读取出来的结果相同。yaml中list格式:数据前加’-‘ 并使用空格与数据间隔开,如下:读取list代码:读取结果:[‘Android’, 10, None, None, True] yaml中存储元组格式:yaml中使用!!对数据类型进行转换,yaml中tuple由list转换而来。如下:读取元组代码:读取结果:(‘Android’, 10, None, None, True) 在实际使用中,很多的时候往往是多种类型嵌套的数据。如下yaml数据读取结果:{‘os’: ‘Android’, ‘osVersion’: 10, ‘account’: [{‘username1’: ‘xiaoqq’}, {‘password1’: 123456}, {‘username2’: ‘Lilei’}, {‘password2’: 888888}], ‘deviceName’: None, ‘appPackage’: None, ‘bool1′: True}yaml多组数据时,每组数据之间需要用3横杠分隔’—‘,如下:从yaml中读取多组数据时需要使用yaml.load_all()方法,返回结果为一个生成器,需要使用for循环语句获取每组数据。代码如下:读取结果:
{‘os’: ‘Android’, ‘osVersion’: 10, ‘account1’: {‘username1’: ‘xiaoqq’, ‘password1’: 123456}}
{‘os’: ‘ios’, ‘osVersion’: 12, ‘account1’: {‘username2’: ‘Lilei’, ‘password2’: 888888}}
使用yaml.dump()方法,加入allow_unicode=True参数防止写入的中文乱码,如下:写入结果:data:
– id: 1
name: 学校
– id: 2
name: 公寓
– id: 3
name: 流动人口社区
msg: 地址
page: 1使用yaml.dump_all()方法,如下:# @author: 给你一页白纸
import yaml
apiData1 = {
“page”: 1,
“msg”: “地址”,
“data”: [{
“id”: 1,
“name”: “学校”
}, {
“id”: 2,
“name”: “公寓”
“id”: 3,
“name”: “流动人口社区”
}],
}
apiData2 = {
“page”: 2,
“name”: “酒店”
“name”: “医院”
“name”: “养老院”
with open(‘./writeYamlData.yml’, ‘w’, encoding=’utf-8′) as f:
yaml.dump_all(documents=[apiData1, apiData2], stream=f, allow_unicode=True)写入结果:data:
– id: 1
name: 学校
– id: 2
name: 公寓
– id: 3
name: 流动人口社区
msg: 地址
page: 1

data:
– id: 1
name: 酒店
– id: 2
name: 医院
– id: 3
name: 养老院
msg: 地址
page: 2在Python中除了PyYAML库之外,还有ruamel.yaml库也可以对yaml文件进行读写操作。“Python怎么使用PyYAML库读写yaml文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: Python中的文件操作方法有哪些

这篇文章主要介绍“Python中的文件操作方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的文件操作方法有哪些”文章能帮助大家解决问题。计算机中有许多可用编码:UTF-8GBKBig5等UTF-8…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 04/08 22:49
Next 04/08 22:49

相关推荐