在python中用于处理yaml格式数据,主要使用yaml.safe_dump()、yaml.safe_load()函数将python值和yaml格式数据相互转换。
当然也存在yaml.dump()、yaml.load()函数,同样能实现数据转换功能,只是官方不太推荐使用。
官方给出的解释,因为yaml.safe_dump()、yaml.safe_load() 能够:
Resolve only basic YAML tags. This is known to be safe for untrusted input
1、yaml.safe_dump():将字典数据写入到yaml文件中
dictData={"name":"tom","age":18}
with open("test01.yml","w",encoding="utf-8") as f:
yaml.safe_dump(dictData,f)
"""
注:test01.yml文件必须提前创建
查看test01.yml文件内容:
age: 18
name: tom
"""
2、yaml.safe_dump():参数不带文件流,直接输出yaml的str
dictData={"name":"tom","age":18}
print(yaml.safe_dump(dictData))
"""
age: 18
name: tom
"""
3、yaml.safe_load():将yaml格式文件转为python值
with open("test01.yml","r") as f:
print(yaml.safe_load(f))
"""
查看test01.yml文件内容:
age: 18
name: tom
{'age': 18, 'name': 'tom'}
"""
4、yaml.safe_dump_all():将一序列的python值转换为yaml格式文件
dictData1={"name":"tom","age":18}
dictData2={"name":"jerry","age":19}
with open("test02.yml","w",encoding="utf-8") as f:
yaml.safe_dump_all([dictData1,dictData2],f)
"""
查看test02.yml文件内容
age: 18
name: tom
---
age: 19
name: jerry
"""
5、yaml.safe_dump_all():参数不带文件流,直接输出yaml的str
dictData1={"name":"tom","age":18}
dictData2={"name":"jerry","age":19}
yaml.safe_dump_all([dictData1,dictData2])
"""
age: 18
name: tom
---
age: 19
name: jerry
"""
6、yaml.safe_load_all():将yaml格式文件转换为python值,且该yaml文件可以包含多块yaml数据
with open("test02.yml","r") as f:
yamldata=yaml.safe_load_all(f)
for data in yamldata:
print(data)
"""
test02.yml文件内容
age: 18
name: tom
---
age: 19
name: jerry
结果:
{'age': 18, 'name': 'tom'}
{'age': 19, 'name': 'jerry'}
"""
yaml的文件与python值互转
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 在java中可利用snakeyaml库进行yaml与json配置文件格式互转,原理就是yaml解析为map对象,再...
- 上一篇笔记记录了Python中的pyyaml库对yaml文件进行读写,但了解到ruamel.yaml也能对yaml...
- 另外,使用OrderedDict可以得到一个有序的字典: 附ruamel模块连接:https://yaml.rea...
- 第一个问题 报错 原因:yaml文档中用---分割,有多个文档,而读取的时候用了yaml.load()方法【解决方...
- 最近在搭建自动化测试项目过程中经常遇到yaml文件的读写,为了方便后续使用,决定记下笔记。 YAML 简介 YAM...