Advertisement

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

阅读量:

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

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

YAML 语法规范
基本结构
  • YAML 文档由一系列键值对组成,可以是简单的键值对,也可以是嵌套的结构。
  • 键值对使用冒号和空格分隔,例如 key: value
  • 嵌套结构可以通过缩进来表示层次关系,例如:
复制代码
    key:

      subkey: value
    
    
    yaml
数据类型
  • 标量 (Scalar):基本数据类型,如字符串、数字等。
复制代码
    age: 30

    name: Alice
    
    
    yaml
  • 序列 (Sequence):类似于数组或列表。
复制代码
    hobbies:

      - reading
      - hiking
      - coding
    
    
    yaml
  • 映射 (Mapping):键值对集合,类似于字典。
复制代码
    contact:

      email: alice@example.com
      phone: 123-456-7890
    
    
    yaml
注释
  • YAML 文件中可以使用 # 符号添加注释。
复制代码
    # This is a comment

    name: Alice
    
    
    yaml
锚点和别名
  • 锚点 (Anchor):允许引用相同的对象。
复制代码
    &shared_info

    name: Alice
    age: 30
    
    user1: *shared_info
    user2: *shared_info
    
    
    yaml
  • 别名 (Alias):通过 * 符号引用锚点。
复制代码
    user_info:

      &shared_info
      name: Alice
      age: 30
    
    user1: *shared_info
    user2: *shared_info
    
    
    yaml
YAML 的应用场景
  • 配置文件 :YAML 常用于配置文件,因为它易于阅读和编写。
  • 数据交换 :在不同的服务或系统之间交换数据时,YAML 可以作为一种轻量级的数据交换格式。
  • 文档说明 :YAML 也用于编写文档,特别是那些需要结构化数据的地方。
使用 Python 读写和解析 YAML

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

复制代码
    pip install pyyaml
    
    
    bash
写入 YAML 文件
复制代码
    import yaml
    
    data = {
    "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)
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/k1vPSAg7UJwDypIeb3MEjlQzXr85.png)
读取 YAML 文件
复制代码
    import yaml
    
    # 读取 YAML 文件
    with open('example.yaml', 'r') as file:
    data = yaml.safe_load(file)
    
    print(data)
    
    
    python
    
    
示例 YAML 文件
复制代码
    # example.yaml
    user:
      name: Alice
      age: 30
      hobbies:
    - reading
    - coding
    - traveling
      contact:
    email: alice@example.com
    phone: 123-456-7890
    
    
    yaml
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/BtUcOqTmy9MKnPJfGlNd8QAvjw0W.png)
解析 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)
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/cKZ8U7I2o1wjmnteYBNaWfurVF5D.png)
YAML 与 Python 数据类型的对应关系
  • 标量 :对应 Python 的 str, int, float, bool, NoneType
  • 序列 :对应 Python 的 listtuple
  • 映射 :对应 Python 的 dict

结论

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

全部评论 (0)

还没有任何评论哟~