解决YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is u

问题描述:

python脚本读取yaml文件时提示警告信息

YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  datas = yaml.load(f)

原因分析:

 yaml 5.1版本后弃用了yaml.load(file)这个用法,因为觉得不安全,5.1之后的版本修改了需要指定Loader,通过默认加载​​器(FullLoader)禁止执行任意函数

详情(原因及解决办法)参见GitHub:https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation

解决方法:

方法一:

在PYTHONWARNINGS环境变量中添加指令

PYTHONWARNINGS=ignore::yaml.YAMLLoadWarning

方法二:

直接在读取yaml文件代码的后面加上 yaml.load(input, Loader=yaml.FullLoader),代码如下

    # datas = yaml.load(f)
    # 改为
    datas = yaml.load(f, Loader=yaml.FullLoader)

方法三:

设置全局变量,忽略/禁用这个警告

yaml.warnings({'YAMLLoadWarning': False})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值