1.报错:
TypeError: load() missing 1 required positional argument: 'Loader'
2.原因:
查询相关资料发现,Yaml 5.1版本后就舍弃了 yaml.load(file) 这个用法。Yaml 5.1版本之后为使得load函数的安全性得以提高,就修改了需要指定Loader,通过默认加载器(FullLoader)禁止执行任意函数。
3.解决方法:
有三种解决办法(三选一即可):
d1=yaml.load(file,Loader=yaml.FullLoader)
d1=yaml.safe_load(file)
d1=yaml.load(file, Loader=yaml.CLoader)
4.实例:
原始代码(即报错代码)如下:
def yaml_load(file_path):
with open(file_path, 'r') as f:
return yaml.load(f)
解决(三选一即可):
def yaml_load(file_path):
with open(file_path, 'r') as f:
return yaml.safe_load(f)
def yaml_load(file_path):
with open(file_path, 'r') as f:
return yaml.load(f,Loader=yaml.CLoader)