python - 如何使用 OrderedDict 作为 yaml.dump 或 yaml.safe_dump 的输入?

标签 python yaml

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

最佳答案

看起来你想要this solution ,它向 YAML 添加了一个“代表”。

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

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

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

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

关于python - 如何使用 OrderedDict 作为 yaml.dump 或 yaml.safe_dump 的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42518067/

相关文章:

python - 将 tweepy 与 GitHub 项目捆绑在一起

python - 无法点击元素 : ElementClickInterceptedException in Splinter/Selenium

Python 连接到 Microsoft 分析服务

git - 通过提交消息触发

amazon-web-services - 如何在CloudFormation yaml模板中引用现有资源?

netbeans - YAML 标签上的 "We had this mapping values are not allowed here"

yaml - 无法找到带有 include 的 databaseChangeLog 节点

python - 获取 JSON 格式的存储过程结果

python - 在 SQL 连接中使用 Pandas Dataframe

python - PyYAML 使用键的前导问号转储字典并在下一行打印值