当前位置: 首页 > news >正文

什么是YAML?学这一篇就够了

YAML (YAML Ain’t Markup Language) 语法规范及应用场景

YAML 是一种人类可读的数据序列化格式,常用于配置文件和数据交换。它旨在提供一种易于阅读和编写的格式,同时也易于机器解析和生成。下面是对 YAML 语法的基本介绍,以及如何使用 Python 对 YAML 文件进行读写和解析的指南。

YAML 语法规范
基本结构
  • YAML 文档由一系列键值对组成,可以是简单的键值对,也可以是嵌套的结构。
  • 键值对使用冒号和空格分隔,例如 key: value
  • 嵌套结构可以通过缩进来表示层次关系,例如:
    key:subkey: value
    
数据类型
  • 标量(Scalar):基本数据类型,如字符串、数字等。
    age: 30
    name: Alice
    
  • 序列(Sequence):类似于数组或列表。
    hobbies:- reading- hiking- coding
    
  • 映射(Mapping):键值对集合,类似于字典。
    contact:email: alice@example.comphone: 123-456-7890
    
注释
  • YAML 文件中可以使用 # 符号添加注释。
    # This is a comment
    name: Alice
    
锚点和别名
  • 锚点(Anchor):允许引用相同的对象。
    &shared_info
    name: Alice
    age: 30user1: *shared_info
    user2: *shared_info
    
  • 别名(Alias):通过 * 符号引用锚点。
    user_info:&shared_infoname: Aliceage: 30user1: *shared_info
    user2: *shared_info
    
YAML 的应用场景
  • 配置文件:YAML 常用于配置文件,因为它易于阅读和编写。
  • 数据交换:在不同的服务或系统之间交换数据时,YAML 可以作为一种轻量级的数据交换格式。
  • 文档说明:YAML 也用于编写文档,特别是那些需要结构化数据的地方。
使用 Python 读写和解析 YAML

为了处理 YAML 文件,我们需要使用 Python 的 PyYAML 库。首先,确保安装了 PyYAML 库:

pip install pyyaml
写入 YAML 文件
import yamldata = {"user": {"name": "Alice","age": 30,"hobbies": ["reading", "coding", "traveling"],"contact": {"email": "alice@example.com","phone": "123-456-7890"}}
}# 写入 YAML 文件
with open('example.yaml', 'w') as file:yaml.dump(data, file, default_flow_style=False)
读取 YAML 文件
import yaml# 读取 YAML 文件
with open('example.yaml', 'r') as file:data = yaml.safe_load(file)print(data)
示例 YAML 文件
# example.yaml
user:name: Aliceage: 30hobbies:- reading- coding- travelingcontact:email: alice@example.comphone: 123-456-7890
解析 YAML 文件
import yaml# 读取并解析 YAML 文件
with open('example.yaml', 'r') as file:data = yaml.safe_load(file)# 打印数据
print(data['user']['name'])
print(data['user']['hobbies'][1])
print(data['user']['contact']['email'])# 修改数据
data['user']['age'] = 31# 写回文件
with open('example.yaml', 'w') as file:yaml.dump(data, file, default_flow_style=False)
YAML 与 Python 数据类型的对应关系
  • 标量:对应 Python 的 str, int, float, bool, NoneType
  • 序列:对应 Python 的 listtuple
  • 映射:对应 Python 的 dict

结论

YAML 是一种非常实用的数据格式,适用于多种场景,特别是在配置管理和数据交换方面。使用 Python 的 PyYAML 库,我们可以轻松地读写和解析 YAML 文件,从而有效地处理 YAML 格式的数据。通过本文的介绍,你现在已经掌握了 YAML 的基本语法规范以及如何使用 Python 进行读写和解析 YAML 文件。


http://www.mrgr.cn/news/13233.html

相关文章:

  • 系统编程-多线程1
  • 学懂C++(四十三):深入剖析现代C++设计模式:从常用经典到前沿的全面解析
  • 关于异常断电后jmeter的jmx文件异常变成二进制文件并成功恢复的心酸历程
  • 如何使用ssm实现投稿系统+vue
  • 力扣3224.使差值相等的最少数组改动次数
  • ZooKeeper 的特性及其在分布式系统中的锁应用
  • FFmpeg源码:avio_read函数分析
  • 谷粒商城实战笔记-问题记录-Feign远程调用丢失请求头问题
  • 提升学术论文质量的智能助手:ChatGPT
  • 自动化常用元素定位
  • 找到K个最接近的元素(LeetCode)
  • 自动化分支合并:一键切换到Master并完成合并操作的脚本
  • C++——STL——栈(stack)
  • Go语言开发通过本地数据xdb文件​查询获取IP地址的归属地区及运营商名称
  • CSS中的Flexbox布局和Grid布局有什么区别?适用场景
  • WPF—画刷(使用画刷实现背景颜色渐变效果)
  • C语言—字符函数和字符串函数
  • 基于SpringBoot+Vue+MySQL的小区物业管理系统
  • YarnClient发送和接收请求源码解析
  • 如何使用ssm实现基于SSM的在线教育网站的设计与实现+vue