pyyaml的yaml加载和转储允许保持密钥顺序。
yamlordereddictloader的Python项目详细描述
这个模块为pyyaml提供了一个装载器和一个转储器,允许保持项目的顺序。 当加载文件(通过将它们放入OrderedDict对象)并管理 OrderedDict转储到文件时的对象。
加载器基于stackoverflow主题(感谢eric naeseth): http://stackoverflow.com/questions/5121931/in-python-how-can-you-load-yaml-mappings-as-ordereddicts#answer-5121963
自我提升:我经常和clg一起使用,它 允许从配置文件生成命令行定义,以便 帮助消息中子命令、选项和参数的顺序!
安装它
$ pip install yamlordereddictloader
装载机使用
importyamlimportyamlordereddictloaderdata=yaml.load(open('myfile.yml'),Loader=yamlordereddictloader.Loader)
注意:用于使用安全加载程序(它需要标准的yaml标记并且 不构造任意python对象),将yamlorderdictloader.Loader替换为 yamlorderedictloader.SafeLoader。
翻车机使用
importyamlimportyamlordereddictloaderfromcollectionsimportOrderedDictdata=OrderedDict([('key1','val1'),('key2',OrderedDict([('key21','val21'),('key22','val22')]))])yaml.dump(data,open('myfile.yml','w'),Dumper=yamlordereddictloader.Dumper,default_flow_style=False)
注意:用于使用安全转储程序(它生成标准的yaml标记并执行 不表示任意python对象),替换为yamlorderdictloader.Dumperyamlorderedictloader.SafeDumper。