如何在 yaml.dump 或 yaml.safe_dump 中使用 OrderedDict 作为输入? [英] How to use OrderedDict as an input in yaml.dump or yaml.safe_dump?

查看:128
本文介绍了如何在 yaml.dump 或 yaml.safe_dump 中使用 OrderedDict 作为输入?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题很简单.我有一个带有自定义订单的 OrderredDict 对象,我想将其转换为 yaml 格式.但似乎 yaml.dump 不能将 Orderredict 作为输入.有人知道怎么做吗?

my question is very simple. I have a OrderredDict object with customized order, I want to convert it to yaml format. But it seems yaml.dump couldn't take Orderredict as an Input. Anyone know how to do it?

推荐答案

看起来你想要这个解决方案,其中向 YAML 添加一个代表".

It looks like you want this solution, which adds a "representer" to YAML.

假设您有一个对象 my_object 由嵌套列表、dicts 和/或 OrderedDicts 组成...如果添加以下行,您可以将其转储到 YAML:

Assuming you have an object my_object that consists of nested lists, dicts, and/or OrderedDicts ... you can dump this to YAML if you add these lines:

yaml.add_representer(OrderedDict, lambda dumper, data: dumper.represent_mapping('tag:yaml.org,2002:map', data.items()))
output = yaml.dump(my_object)

我还发现有必要将我的元组转换为列表:

I also find it necessary to convert my tuples to lists:

yaml.add_representer(tuple, lambda dumper, data: dumper.represent_sequence('tag:yaml.org,2002:seq', data))

这篇关于如何在 yaml.dump 或 yaml.safe_dump 中使用 OrderedDict 作为输入?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆