Bootstrap

一文告诉你什么是YAML文件,如何编写YAML!

“YAML 文件,听起来像个神秘代码,但它其实是程序员的‘魔法书’?”从 Kubernetes 配置到 GitHub Actions,YAML 无处不在,用简单的缩进和冒号就能指挥复杂的系统。今天,我们就来揭开它的面纱,手把手教你如何编写!

你有没有好奇,YAML 到底是什么,为什么它能让程序员又爱又恨?别急,这篇文章带你从零开始,搞懂 YAML 的本质和写法。

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式。它被设计成易于阅读和编写,同时也适合表示复杂的数据结构。通常情况下,YAML 用于配置文件、数据交换和描述性数据的表示。 

01 基本结构 

YAML 使用空格和缩进来表示数据层级关系,因此缩进对于正确解析数据结构至关重要。

YAML(YAML Ain't Markup Language)是一种轻量级的数据序列化语言,强调可读性。比如一个简单的用户信息

下面是一些 YAML 的基本结构: 

键值对

yamlkey: value

another_key: another_value

列表

yaml- item1

- item2

- item3

嵌套结构

yamlparent_key:

  child_key1: value1

  child_key2: value2

注释 

YAML 支持单行注释,使用 # 符号:

yaml# 这是一个注释

key: value # 这也是注释

02 数据类型 

YAML 支持多种数据类型: 

  • Scalars(标量) 

  • Mappings(映射) 

  • Sequences(序列) 

示例 

以下是一个简单的 YAML 示例,展示了不同类型的数据结构

yaml# 字符串、整数、浮点数、布尔值和 null

name: John Doe

age: 30

height: 1.75

is_student: false

description: null

# 列表

skills:

  - Python

  - JavaScript

  - SQL

# 嵌套结构

address:

  street: 123 Main St

  city: Anytown

  country: Countryland

案例:配置 YAML 时,用 YAML 列出多个服务,连端口映射都一目了然,调试起来效率翻倍。

 

03 用途

YAML 在许多领域都有广泛的应用,包括但不限于: 

  • 配置文件

  • 数据交换 

  • 文档结构描述 

注意事项 

缩进: 

特殊字符处理:

  • {

使用 PyYAML 库来演示如何读取一个简单的 YAML 配置文件 

首先,确保你已经安装 PyYAML。

你可以使用以下命令进行安装:

pip install pyyaml

然后,创建一个 YAML 配置文件,比如 config.yaml:

config.yaml

database:

  host: localhost

  port: 5432

  username: myuser

  password: mypassword

app:

  debug: true

  log_file: app.log

 

接下来,使用 Python 编写一个脚本来读取这个配置文件:

import yaml


    with open(file_path, 'r') as file:

         config = yaml.safe_load(file)

    return config


# 读取配置文件

config_path = 'config.yaml'

config_data = load_config(config_path)





# 访问配置项

database_config = config_data.get('database', {})

app_config = config_data.get('app', {})





# 打印配置项

print("Database Configuration:")

print(f"Host:{database_config.get('host')}")

print(f"Port: {database_config.get('port')}")

print(f"Username: {database_config.get('username')}")

print(f"Password: {database_config.get('password')}")



print("\nApp Configuration:")

print(f"Debug: {app_config.get('debug')}")

print(f"Log File: {app_config.get('log_file')}")

这个脚本使用 PyYAML 库中的 safe_load 函数来加载 YAML 文件,然后通过字典的方式访问配置项。这只是一个简单的例子,你可以根据实际需求扩展和修改代码。这种方法使得你可以将配置信息存储在易读易写的 YAML 文件中,并在代码中方便地使用。确保在实际的生产环境中,对配置文件的读取和解析进行适当的错误处理和安全性检查

YAML 是一个灵活且强大的数据格式,其简洁性和可读性使其在多种应用场景下都得到广泛应用

总结

在 DevOps 和自动化流行的今天,YAML 成了程序员的“通用语言”。就像年轻人爱用表情包省话,YAML 用简洁的语法省去了繁琐的代码结构。从 CI/CD 到云原生,YAML 的火爆反映了大家对效率和直观的追求,谁能快速上手,谁就抢占先机。

YAML 文件本质上是简洁的人机交互语言,通过缩进和键值对,轻松定义复杂数据。掌握它的基本语法——缩进、列表、键值对,你就能驾驭从配置文件到自动化脚本的各种场景。它不仅是工具,更是程序员效率的象征。

YAML,缩进之间藏乾坤,简单几行定江山——学会它,你就离技术大牛近了一步!

 

;