Python 读取 YAML

Python 读取 YAML

Python 读取 YAML

什么是 YAML

YAML(Yet Another Markup Language)是一种可读性高且常用于配置文件的数据序列化格式。它以易读的方式表达数据结构,支持列表、字典等常见的数据类型。与其他数据序列化格式(如 JSON 和 XML)相比,在文本文件中更易于人类阅读和编辑。

YAML 具有以下特点:

  • 简洁性:YAML使用缩进和换行的方式来组织数据,使得数据看起来更加清晰、紧凑,减少了冗长的标记符号。
  • 可读性:YAML使用普通文本来表示数据,易于人类理解和编辑。
  • 可扩展性:YAML支持自定义数据类型,可以按照需要定义新的数据结构。

Python 中的 YAML 库

Python 中,我们可以使用 PyYAML 库来读取和处理 YAML 格式的数据。PyYAML 能够将 YAML 文件加载为 Python 对象,也可以将 Python 对象转换为 YAML 格式。

要使用 PyYAML 库,可以通过 pip 安装:

pip install pyyaml

读取 YAML 文件

使用 PyYAML 库,我们可以将 YAML 文件内容读取为 Python 对象。下面是一个示例 YAML 文件 config.yml

# config.yml

database:
  host: localhost
  port: 3306
  username: my_username
  password: my_password

app:
  name: My App
  version: 1.0

现在我们来读取这个 YAML 文件并转换为 Python 对象:

import yaml

with open('config.yml', 'r') as file:
    config = yaml.load(file, Loader=yaml.FullLoader)

print(config)

运行结果:

{'database': {'host': 'localhost', 'port': 3306, 'username': 'my_username', 'password': 'my_password'}, 'app': {'name': 'My App', 'version': 1.0}}

通过这段代码,我们成功地将 YAML 文件加载为了一个 Python 字典对象。文件中的每个键值对都被转换为对应的字典项。

访问 YAML 数据

一旦将 YAML 文件加载为 Python 对象,我们可以像访问普通字典一样访问其中的数据。下面是一些常见的访问方式:

# 访问数据库相关配置
database = config['database']
print(database['host'])  # 输出:localhost
print(database['port'])  # 输出:3306

# 访问应用程序相关配置
app = config['app']
print(app['name'])  # 输出:My App
print(app['version'])  # 输出:1.0

修改 YAML 数据

我们可以对加载的 YAML 数据进行修改,然后将修改后的数据保存回 YAML 文件。下面是一个示例演示如何修改配置文件:

# 修改数据库用户名和密码
config['database']['username'] = 'new_username'
config['database']['password'] = 'new_password'

# 保存修改后的数据
with open('config.yml', 'w') as file:
    yaml.dump(config, file)

运行这段代码后,config.yml 文件中的用户名和密码已经被修改为新的值。

总结

本文介绍了如何使用 Python 中的 PyYAML 库读取和处理 YAML 格式的数据。通过 PyYAML,我们可以方便地将 YAML 文件加载为 Python 对象,对其中的数据进行访问和修改,并将修改后的数据保存回 YAML 文件。

参考资料

  • PyYAML 官方文档:https://pyyaml.org/wiki/PyYAMLDocumentation

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程