关于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自动化
文章目录
前言:今天在使用 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)