美文网首页
yaml的文件与python值互转

yaml的文件与python值互转

作者: Chaweys | 来源:发表于2022-01-25 13:00 被阅读0次

在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值互转

      本文链接:https://www.haomeiwen.com/subject/vlzbhrtx.html