> 文档中心 > 关于result = yaml.load(data, Loader=yaml.FullLoader)

关于result = yaml.load(data, Loader=yaml.FullLoader)


万叶集
🎉 隐约雷鸣 🎉 阴霾天空 🎉
🎉 但盼风雨来 🎉 能留你在此 🎉

前言
✌ 作者简介:渴望力量的哈士奇,大家可以叫我 🐶哈士奇🐶 。(我真的有一只哈士奇)
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


📕 系列专栏:
               👍 Python全栈系列 - [更新中]     【 本文在该系列】
               👋 网安之路系列
​                       🍋 网安之路踩坑篇
​                       🍋 网安知识扫盲篇
​                       🍋 Vulhub 漏洞复现篇
​                       🍋 Shell脚本编程篇
​                       🍋 Web攻防篇   2021年9月3日停止更新,转战先知等安全社区
​                       🍋 渗透工具使用集锦  2021年9月3日停止更新,转战先知等安全社区
​                ⭐️ 点点点工程师系列
​                       🍹 测试神器 - Charles 篇
​                       🍹 测试神器 - Fiddler 篇
​                       🍹 测试神器 - Jmeter 篇
​                       🍹 自动化 - RobotFrameWork 系列
​                       🍹 自动化 - 基于 JAVA 实现的WEB端UI自动化
                       🍹 自动化 - 基于 MonkeyRunner 实现的APP端UI自动化

关于result = yaml.load(data, Loader=yaml.FullLoader) 关于result = yaml.load(data, Loader=yaml.FullLoader)

文章目录

前言:今天在使用 yaml.load(data) 的时候出现如下报错。

脚本示例如下:

# coding:utf-8import yamldef read(path):    with open(path, 'r') as file: data = file.read() result = yaml.load(data) return resultif __name__ == '__main__':    result = read('test.yaml')    print(result)

报错如下:

Traceback (most recent call last):  File "/Users/username/PycharmProjects/XXXXX/XXXXX/file_read_write/test_yaml.py", line 14, in <module>    result = read('test.yaml')  File "/Users/username/PycharmProjects/XXXXX/XXXXX/file_read_write/test_yaml.py", line 9, in read    result = yaml.load(data)TypeError: load() missing 1 required positional argument: 'Loader'

首先看这个❌错误类型:TypeError: 缺少1个必需的位置参数:“Loader”

这是因为在 YAML 5.1版本后,已经弃用了 yaml.load(file) 这个用法,因为这样很不安全。在5.1版本之后就修改了,使用 yaml.load() 方法需要指定Loader,通过默认加载器(FullLoader)禁止执行任意函数,这样 load() 函数也变得更加安全。解决上述报错将 yaml.load() 改为 ``yaml.load(data, Loader=yaml.FullLoader) 即可。

解决该 TypeError 不单单 只有 yaml.load(data, Loader=yaml.FullLoader) 这一个方法。

以下三选一即可解决该 TypeError

yaml.safe_load(file.read())yaml.load(file.read(), Loader=yaml.FullLoader)yaml.load(file.read(), Loader=yaml.CLoader)