python读取yaml文件yaml.composer.Comp

2020-09-29  本文已影响0人  _karen

第一个问题

报错

yaml.composer.ComposerError: expected a single document in the stream

原因:yaml文档中用---分割,有多个文档,而读取的时候用了yaml.load()方法
【解决方案一】
将yaml.load()方法改成yaml.loadall()

datas = yaml.load_all(file_data, Loader=yaml.FullLoader)
print(datas)
print(type(datas))

注意:输出最后生成的datas和data的类型是:
<generator object load_all at 0x0000017829B079C8>
<class 'generator'>

【解决方案二】
将文档中的---去掉,变成document1

datas = yaml.load_all(file_data, Loader=yaml.FullLoader)
print(datas)
print(type(datas))

最后输出的:datas是字典 dict

第二个问题:
报错

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

【解决方案一】
将yaml.load()方法改成yaml.loadall()
【解决方案二】
load后面加上参数Loader=yaml.FullLoader
datas = yaml.load(file_data, Loader=yaml.FullLoader)

上一篇 下一篇

猜你喜欢

热点阅读