首页 > 编程语言 > 详细

python之模块分类(三)

时间:2020-04-16 15:37:21      阅读:70      评论:0      收藏:0      [点我收藏+]

Python对yaml格式配置文件的处理:

Python也可以很容易的处理ymal文档格式,只不过需要安装一个pyyaml模块。

http://pyyaml.org/wiki/PyYAMLDocumentation

一、加载yaml

警告:调用 yaml.load 处理从不可信任的源接收的数据可能存在风险。yaml.loadpickle.load 的功能一样强大,可以调用所有Python函数。

(1)yaml.load 函数的作用是用来将YAML文档转化成Python对象。

#Author:Anliu
import yaml
doc = """
- host
- name
- handle
"""
print(yaml.load(doc))

执行结果:

[‘host‘, ‘name‘, ‘handle‘]
K:/pyprogram/modler_test/pyyaml_test/test2.py:8: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  print(yaml.load(doc))

以上告警原因是: yaml 5.1版本后弃用了yaml.load(file)这个用法,因为觉得很不安全,5.1版本之后就修改了需要指定Loader,通过默认加载??器(FullLoader)禁止执行任意函数。

解决方法:

#Author:Anliu
import yaml
doc = """
- host
- name
- handle
"""
print(yaml.load(doc,Loader=yaml.FullLoader))

Loader的几种加载方式
BaseLoader--仅加载最基本的YAML
SafeLoader--安全地加载YAML语言的子集。建议用于加载不受信任的输入。
FullLoader--加载完整的YAML语言。避免任意代码执行。这是当前(PyYAML 5.1)默认加载器调用
             yaml.load(input)(发出警告后)。
UnsafeLoader--(也称为Loader向后兼容性)原始的Loader代码,可以通过不受信任的数据输入轻松利用。

结果为:

[‘host‘, ‘name‘, ‘handle‘]










python之模块分类(三)

原文:https://www.cnblogs.com/anttech/p/12713024.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!