📅  最后修改于: 2023-12-03 14:59:25.171000             🧑  作者: Mango
当使用 PyYAML 库读取 YAML 文件时,可能会遇到以下错误消息:
AttributeError: module 'yaml' has no attribute 'FullLoader'
这个错误发生的原因是 PyYAML 从版本 5.1 开始更改了默认的解析器。在旧版 PyYAML 中,可以使用 yaml.Loader
或 yaml.SafeLoader
解析 YAML,但在新版 PyYAML 中,这些已被分别重命名为 yaml.FullLoader
和 yaml.SafeLoader
。
因此,在 PyYAML 5.1 及更高版本中,如果使用旧的语法来加载 YAML,就会出现以上的 AttributeError 错误。
为了解决这个问题,应该使用以下的语法来加载 YAML:
import yaml
with open("file.yaml") as file:
yaml_data = yaml.load(file, Loader=yaml.FullLoader)
其中,yaml.FullLoader
指定要使用 PyYAML 的新解析器。
最后,我们需要记住的是,当 PyYAML 升级时,它可能会更改默认解析器的名称。使用新名称来访问解析器是一个好习惯,这样我们的代码就可以保持兼容性并避免此类错误。