在 Python 中解析 YAML 文件
本教程将演示在 Python 中解析 YAML 文件的不同方法。
YAML 是一种数据序列化标准,用作文件类型以在项目中存储配置文件或属性文件。YAML 通常替换典型的 XML 或 JSON 配置文件,因为与这两种文件类型相比,文件更易于序列化。
在 Python 中使用 PyYAML
包解析 YAML
pyyaml
是一个 Python 软件包,提供了实用程序来解析和处理 Python 中的 YAML 文件。
第一步是使用 pip
安装 pyyaml
,因为它不是现成的 Python 包。
pip install pyyaml
对于 Python 3.x 用户,请使用 pip3
而不是 pip
。
pip3 install pyyaml
现在安装完成,继续解析示例 YAML 文件。YAML 文件的开头始终始终带有三个破折号 ---
,以表示新的 YAML 文档的开头。
请注意,缩进 YAML 文件时应仅使用空格,因为这些文件不会将制表符空格识别为缩进。
YAML 文件的扩展名可以是 .yaml
或 .yml
。
sample.yaml
---
name: "John"
age: 23
isMale: true
hobbies:
- swimming
- fishing
- diving
要在 Python 中读取给定的 YAML 文件,请首先导入 yaml
模块。然后,使用 open()
函数打开 yaml 文件。yaml
模块具有预定义的函数 load()
,该函数接受文件作为参数,在 Python 中加载 YAML 文件,并将其转换为 Python 对象数据类型。
import yaml
with open('sample.yaml', 'r') as f:
print(yaml.load(f))
如果你打印 yaml.load()
的输出,它将以 Python 对象格式显示 YAML 文件的内容。
输出:
{'name': 'John', 'age': 23, 'isMale': True, 'hobbies': ['swimming', 'fishing', 'diving']}
为了确保 YAML 文件存在并且没有损坏,可以安全使用,我们可以使用 yaml
模块 YAMLError
中的内置错误对象添加 try
块并捕获异常。使代码更安全使用的另一层是用 safe_load()
替换 load()
函数,该函数在加载之前先验证 YAML 文件。
import yaml
with open("sample.yaml", 'r') as stream:
try:
print(yaml.safe_load(stream))
except yaml.YAMLError as exc:
print(exc)
此解决方案与以前的解决方案具有相同的输出,尽管这是在 Python 中解析 YAML 文件的更安全的方法。
总而言之,使用 yaml
模块可以很容易地在 Python 中解析 YAML 文件。使用模块之前,请确保先执行 pip install pyyaml
,因为它不是现成的内置模块。
用 try...except
块封装文件操作函数是一个很好的做法,以确保文件操作的顺利进行和安全执行。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn