python文件操作——YAML库

一、yaml安装

使用命令pip install pyyaml进行安装

二、yaml文件格式与语法规则

yaml文件支持输出列表,字典,嵌套,使用空格来区分层级关系。

一、注释 #

使用# 来填写注释

# 这是一个yaml文件

二、 key:value

使用key:value,之间用空格分开,多个使用空格进行区分

# 注释
data: 123 
data2: 456

输出为:{'data': 123, 'data2': 456}

三、短横(-)表示列表,用空格进行分隔

- data
- data2

输出为:['data', 'data2']

四、嵌套:使用缩进展示层级关系

列表内嵌套字典:为- key:value,以下为例子

- a: 1
- b: 2

输出为[{'a': 1}, {'b': 2}]

字典嵌套字典:key:key: value 注意这个时候需要有缩进

parent_key:
  child_key1: value1
  child_key2: value2

输出为{'parent_key': {'child_key1': 'value1', 'child_key2': 'value2'}}

列表嵌套列表:使用短横(-)以缩进进行使用

代码如下:

-
    - data
    - data2
    - data3

输出:[['data', 'data2', 'data3']]

总结:

这些是YAML的基本语法规则。使用这些规则,你可以创建具有层次结构和灵活性的数据表示。请注意,缩进、空格和换行符在YAML中非常重要,因为它们用于表示结构和层次关系。

        大小写敏感,Yam文件中true和false不区分大小写,其他区分大小写
        使用缩进表示层级关系,缩进时不支持使用Tab键缩进,只允许使用空格。不需要关注缩进的空格数目,只要相同层级的元素左侧对齐即可
        多个文件用"- – -"来区分

三、读取yaml文件:

PyYAML提供了load和safe_load这两个函数来将YAML数据加载为Python对象。它们之间的主要区别在于安全性。

        load函数:load函数用于将YAML数据加载为Python对象。它接受一个文件对象或包含YAML数据的字符串作为输入,并返回相应的Python对象。load函数支持YAML中的所有功能,包括自定义类型和标记。

        safe_load函数:safe_load函数也用于将YAML数据加载为Python对象,但它具有更多的安全性措施。safe_load函数只支持加载基本的Python数据类型,如字典、列表、字符串、整数、浮点数等。它不支持自定义类型和标记。、、

import yaml

with open('data.YML','r', encoding='utf-8') as f:
    data = yaml.safe_load(f.read())  # safe_load将读取内容转为json格式
    data11 = yaml.load(f.read(), Loader=yaml.FullLoader) # load读取文件需要设置FullLoader解析哪些标签
print(data)

四、yaml写入

使用yaml.dump进行写入,代码如下

import yaml

data = {
    'name': '小明',
    'age': 18,
    'sex': '男'
}
with open('data.YML','a+', encoding='utf-8') as f:
    # data = yaml.safe_load(f.read())  # safe_load将读取内容转为json格式
    yaml.dump(data, f, allow_unicode=True)
print(data)

作者:飞翔的小飞象

物联沃分享整理
物联沃-IOTWORD物联网 » python文件操作——YAML库

发表回复