最近在使用yaml第三方库解析yaml文件报错,在这里记录一下;
代码原文
def get_yaml_data(yml_file):
with open(yml_file, 'r', encoding='utf-8') as f:
yml_content = yaml.load(f)
return yml_content
以上的代码执行后,将会抛出异常,如下:
YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
# 原因:YAML 5.1版本后弃用了yaml.load(file)这个用法,因为觉得很不安全,5.1版本之后就修改了需要指定Loader,通过默认加载器(FullLoader)禁止执行任意函数,该load函数也变得更加安全
解决方案
1、yml_content = yaml.load(f, Loader=yaml.FullLoader)
2、yml_content = yaml.load(stream, Loader=yaml.CLoader)
3、yml_content = yaml.safe_load(f)
将代码中的替换成以上三种方式任意一种即可
版权声明:本文为weixin_40960688原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。