在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...