loads/image/0505.jpg" alt="关于result = yaml.load(data, Loader=yaml.FullLoader)"/>
关于result = yaml.load(data, Loader=yaml.FullLoader)
- 订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我。推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V!
- 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量4300+,购买任意白宝书体系化专栏可加入TFS-CLUB 私域社区。
- 福利:加入社区的小伙伴们,除了可以获取博主所有付费专栏的阅读权限之外,还有机会加入 星荐官共赢计划 ,详情请戳我 。
- 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,目前任某金融品类App负责人。
- 荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计划” 发起人。
- 现象级专栏《白宝书系列》作者,文章知识点浅显易懂且不失深度;TFS-CLUB社区创立者,旨在以“赋能 共赢”推动共建技术人成长共同体。
- 🏆 白宝书系列
- 🏅 Python全栈白宝书
- 🏅 产品思维训练白宝书
- 🏅 全域运营实战白宝书
- 🏅 大前端全栈架构白宝书
专栏系列(点击解锁) | 学习路线(点击解锁) |
---|---|
Python全栈白宝书 | 零基础入门篇 |
语法进阶篇 | |
自动化办公篇 | |
自动化测试实战篇 | |
数据库开发实战篇 | |
爬虫入门与实战 | |
数据分析篇 | |
前端入门+flask 全栈篇 | |
django+vue全栈篇 | |
拓展-人工智能入门 |
文章目录
前言:今天在使用 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 readresult = 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)
更多推荐
关于result = yaml.load(data, Loader=yaml.FullLoader)
发布评论