YAML模块

目录

YAML

YAML介绍

YAML的使⽤

读取和写⼊yaml⽂件

​编辑


YAML

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介绍

YAML ⽂件的后缀名是 .yaml 或 .yml ,本着能少写不多写的原则,我们常⽤的是 .yml 。yaml 中⽀持不同数据类型,但在写法上稍有区别:

python 复制代码
//简单标量值
//YAML
key: value

//JSON
{
 "key": "value"
}
python 复制代码
//整型和浮点数
//YAML
int_key: 123
float_key: 
123.456

//JSON
{
 "int_key": 123,
 "float_key": 123.456
}
python 复制代码
//布尔值
//YAML
bool_key: true

//JSON
{
 "bool_key": true
}
python 复制代码
//字符串
//YAML
string_key: "This is a string"  //也可以不带双引号

//JSON
{
 "string_key": "This is a string"
}
python 复制代码
//列表
//YAML
list_key:
 - item1
 - item2
 - item3


//JSON
{
 "list_key": ["item1", "item2", 
"item3"]
}
python 复制代码
映射(字典)
//YAML
map_key:
 sub_key1: 
sub_value1
 sub_key2: 
sub_value2

//JSON
{
 "map_key": {
 "sub_key1": "sub_value1",
 "sub_key2": "sub_value2"
 }
}
python 复制代码
嵌套结构
//YAML
nested_key:
 list_key:
 - item1
 - item2
 map_key:
 sub_key1: 
sub_value1
 sub_key2: 
sub_value2


//JSON
{
 "nested_key": {
 "list_key": ["item1", 
"item2"],
 "map_key": {
 "sub_key1": "sub_value1",
 "sub_key2": "sub_value2"
 }
 }
}

可以借助工具进行转换,:如json转yaml

https://www.jashtool.com/json/to-yaml

YAML的使⽤

yaml ⽂件通常作为配置⽂件来使⽤,可以使⽤ yaml 库来读取和写⼊ YAML ⽂件

安装yaml库

python 复制代码
pip install PyYAML==6.0.1

创建yaml⽂件 test.yml

读取和写⼊yaml⽂件

python 复制代码
import yaml
import pytest

#追加写入
def write_yaml(filename, data):
    #with的意思是打开一个文件之后,自动关闭文件
    #as f的意思是将打开文件的句柄赋值给f
    with open(filename, encoding="utf-8", mode="a+") as f:
        #yaml.dump 以yaml的格式向文件中写入数据
        yaml.dump(data, stream=f)

# 读取
def read_yaml(filename, key):
    with open(filename, encoding="utf-8", mode="r") as f:
        # yaml.safe_load 向yaml配置文件中读取配置信息
        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_yml():
    #将data中的数据写到test.yml中去
    data={"str":"12345"}
    write_yaml("test.yml", data)

    #读取test.yml文件中的数据
    ret=read_yaml("test.yml", "str")
    print(ret)

    clear_yaml("test.yml")

相关推荐
智航GIS2 小时前
4.2 集合(Set)
开发语言·python
小白学大数据2 小时前
利用 Selenium 与 BeautifulSoup 构建链家动态爬虫
开发语言·爬虫·selenium·beautifulsoup
qq_377112372 小时前
从零开始深入理解并发、线程与等待通知机制
java·开发语言
小徐Chao努力2 小时前
【Langchain4j-Java AI开发】07-RAG 检索增强生成
java·人工智能·python
花哥码天下2 小时前
修复Bash脚本Here Document错误
开发语言·bash
Rysxt_2 小时前
UniApp uni_modules 文件夹详细教程
开发语言·javascript·ecmascript
小熊熊知识库2 小时前
AI架构详解以及免费AI如何薅
人工智能·python·ai使用
hakesashou2 小时前
python变量如何加入到文件路径
python
Wang's Blog2 小时前
Lua: 核心机制解析之函数的多维魔法与模块化封装艺术
开发语言·lua