您的位置:首页 > 娱乐 > 八卦 > 什么是YAML?学这一篇就够了

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

2025/2/27 16:30:21 来源:https://blog.csdn.net/TalorSwfit20111208/article/details/141649945  浏览:    关键词:什么是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 文件。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com