我想讓PyYAML的加載器將映射(和有序映射)加載到Python 2.7+ OrderedDict類(lèi)型中,而不是dict它當(dāng)前使用的普通和對(duì)列表。最好的方法是什么?
3 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
yaml模塊允許您指定自定義“代表”以將Python對(duì)象轉(zhuǎn)換為文本,并指定“構(gòu)造函數(shù)”以逆轉(zhuǎn)該過(guò)程。
_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)
添加回答
舉報(bào)
0/150
提交
取消