为Pyyaml订购Yaml装载机和翻车机。
yamlloader的Python项目详细描述
yamlloader
此模块为pyyaml提供装载机和转储程序。目前,订购的ICT装载机/翻车机 实现,允许保持项目顺序 加载响应时将文件从OrderedDict转储到OrderedDict(Python3.7:还支持常规dict,并且是要加载到的默认项。从python 3.7开始,保留插入顺序是常规dict的一个语言特性。)
此项目最初是从 yamlordereddict 非常感谢原作者弗朗索瓦·梅纳贝! 这个库包含了一些改进,包括自动化测试和 装载机/自卸车更快的C版本。
安装
提供PIP和CONDA版本
$ pip install yamlloader
或
$ conda install yamlloader -c phynix # it is also in conda-forge
但[你的特例]也有效吗?
使用随机生成的yaml文件连续运行测试。 此外,也没有不可预料的。
不过,如果你担心你的特例将来可能会破,请 在tests/下添加您自己的测试为test\u ext\u anyname.py,或者让我们知道您的需求。 这保证不会添加破坏your大小写的代码。
C版与非C版
通过用cloader替换loader*和dumper*类,可以实现显著的加速* 和泵*。这个包依赖于pyyaml的实现。如果他们没有 编译后,yamlloaderautomatically返回到非c版本。
因此使用c-version是安全的:如果它不可用,纯python版本是 自动使用。
用法示例
装载机使用
importyamlimportyamlloaderwithopen('myfile.yml')asyaml_file:data=yaml.load(yaml_file,Loader=yamlloader.ordereddict.CLoader)# CLoader is faster than Loader
注意:用于使用安全加载程序(它接受标准的yaml标记并执行 不构造任意python对象),将yamlloader.ordereddict.CLoader替换为 yamlloader.ordereddict.CSafeLoader。
自卸车使用
importyamlimportyamlloaderfromcollectionsimportOrderedDictdata=OrderedDict([('key1','val1'),('key2',OrderedDict([('key21','val21'),('key22','val22')]))])withopen('myfile.yaml','w')asyaml_file:yaml.dump(data,yaml_file,Dumper=yamlloader.ordereddict.CDumper)
注意:用于使用安全转储程序(它生成标准的yaml标记并执行 不表示任意python对象),替换为yamlloader.ordereddict.CDumperyamlloader.ordereddict.CSafeDumper。