为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中,如何将YAML映射加载为OrderedDicts?

在Python中,如何将YAML映射加载为OrderedDicts?

慕妹3242003 2019-11-07 10:28:48
我想让PyYAML的加载器将映射(和有序映射)加载到Python 2.7+ OrderedDict类型中,而不是dict它当前使用的普通和对列表。最好的方法是什么?
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

yaml模块允许您指定自定义“代表”以将Python对象转换为文本,并指定“构造函数”以逆转该过程。


_mapping_tag = yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG


def dict_representer(dumper, data):

    return dumper.represent_dict(data.iteritems())


def dict_constructor(loader, node):

    return collections.OrderedDict(loader.construct_pairs(node))


yaml.add_representer(collections.OrderedDict, dict_representer)

yaml.add_constructor(_mapping_tag, dict_constructor)


查看完整回答
反对 回复 2019-11-07
  • 3 回答
  • 0 关注
  • 993 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信