如何解决使有序的字典在 yaml.dump 输出中表现得像正常的字典
当用 OrderedDict
序列化一个 yaml.dump()
时,由于有很多破折号,输出很难理解:
refine: !!python/object/apply:collections.OrderedDict
- - - root
- Wuhan/Hu-1/2019
- - clock_rate
- 0.0007
- - clock_std_dev
- 0.0003
有没有办法让 yaml.dump()
像普通的 OrderedDict
一样序列化 Dict
?我想要的是更具可读性:
refine:
root: Wuhan/Hu-1/2019
clock_rate: 0.0007
clock_std_dev: 0.0003
我是否需要遍历整个变量(它由数百个字典组成,以上只是摘录)并将所有 OrderedDict
转换为 Dict
还是有一个内置的yaml.dump()
的功能或为我执行此操作的类似库?
解决方法
使用 ruamel.yaml
代替 PyYAML
立即解决了问题。 OrderedDict
在输出中不再表示为列表。
此代码:
import ruamel.yaml
yaml=ruamel.yaml.YAML()
yaml.dump()
产生更整洁的输出:
refine: !!omap
- root: Wuhan/Hu-1/2019
- clock_rate: 0.0007
- clock_std_dev: 0.0003
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。