📌  相关文章
📜  AttributeError:模块 'yaml' 没有属性 'FullLoader' (1)

📅  最后修改于: 2023-12-03 14:59:25.171000             🧑  作者: Mango

AttributeError: 模块 'yaml' 没有属性 'FullLoader'

当使用 PyYAML 库读取 YAML 文件时,可能会遇到以下错误消息:

AttributeError: module 'yaml' has no attribute 'FullLoader'

这个错误发生的原因是 PyYAML 从版本 5.1 开始更改了默认的解析器。在旧版 PyYAML 中,可以使用 yaml.Loaderyaml.SafeLoader 解析 YAML,但在新版 PyYAML 中,这些已被分别重命名为 yaml.FullLoaderyaml.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 升级时,它可能会更改默认解析器的名称。使用新名称来访问解析器是一个好习惯,这样我们的代码就可以保持兼容性并避免此类错误。