在使用yaml文件之前,我们要先安装对应的yaml库

pip install PyYAML==6.0.1

介绍

YAML 是一种数据序列化语言,用于以人类可读的形式存储信息。它最初代表 “Yet Another Markup Language”,但后来更改为 “YAML Ain’t Markup Language”(YAML 不是一种标记语言),以区别于真正的标记语言。

它类似于 XML 和 JSON 文件,但使用更简洁的语法。

特点:

  • YAML 是一种非常简单的基于文本的人类可读的语言,用于在人和计算机之间交换数据。

  • YAML 不是一种编程语言。它主要用于存储配置信息。

  • YAML 的缩进就像 Python 的缩进一样优雅。

  • YAML 还减少了 JSON 和 XML 文件中的大部分 “噪音” 格式,例如引号、方括号和大括号。

注意:

  • YAML 是区分大小写。

  • YAML 不允许使用制表符 Tab 键,(你之所按下 Tab YAML 仍能使用,是因为编辑器被配置为按下 Tab 键会导致插入适当数量的空格)。

  • YAML 是遵循严格缩进的。

yaml文件的文件后缀名是 .yaml 或者 .yml ,yaml同时也支持不同的数据类型,在写法上也有一些小区别

数据类型

YAML

JSON

简单标量值


key:value


{ "key":"value" }

整数/浮点数


int_key: 123 float_key: 1.23


{ int_key: 123 float_key: 1.23 }

布尔值


boolean_key: true


{ "boolean_key": true }

字符串


string_key:"这是一个字符串类型的值"


{ "string_key":"这是一个字符串类型的值" }

列表


list_key: - item1 - item2 - item3


{ "list_key":["item1","item2","item3"] }

映射(字典)


map_key: sub_key1: sub_value1 sub_key2: sub_value2


{ "map_key":{ "sub_key1":"sub_value1", "sub_key2":"sub_value2" } }

嵌套结构


new_key: list_key: - item1 - item2 map_key: sub_key1: sub_value1 sub_key2: sub_value2


{ "new_key":{ "list_key":["item1","item2"] "map_key":{ "sub_key1":"sub_value1", "sub_key2":"sub_value2" } } }

使用

创建一个yaml文件

进行测试

import yaml

# 写入
def write_yaml(filename,data):
    with open(filename,encoding="utf-8",mode="a+") as f:
        yaml.safe_dump(data,stream=f)

# 读取
def read_yaml(filename,key):
    with open(filename,encoding="utf-8",mode="r") as f:
        data = yaml.safe_load(f)
        return data[key]

# 清空
def clear_yaml(filename):
    with open(filename,encoding="utf-8",mode="w") as f:
        f.truncate()

def test_yaml():
    # 写入yaml文件
    data = {"str":"这是测试的数据"}
    write_yaml('test.yaml',data)

    # 读取yaml文件
    result = read_yaml('test.yaml',"str")
    print(f"result: {result}")

    # 清空yaml文件
    clear_yaml('test.yaml')

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐