【发布时间】:2021-09-12 16:31:13
【问题描述】:
当用yaml.dump() 序列化OrderedDict 时,由于有许多破折号,输出很难理解:
refine: !!python/object/apply:collections.OrderedDict
- - - root
- Wuhan/Hu-1/2019
- - clock_rate
- 0.0007
- - clock_std_dev
- 0.0003
有没有办法让yaml.dump() 像普通的Dicts 一样序列化OrderedDicts?我想要的是更具可读性:
refine:
root: Wuhan/Hu-1/2019
clock_rate: 0.0007
clock_std_dev: 0.0003
我是否需要遍历整个变量(它由数百个字典组成,以上只是摘录)并将所有OrderedDicts 转换为Dicts 还是@987654332 的内置功能@ 或为我执行此操作的类似库?
【问题讨论】:
-
如果速度不是问题,我个人会递归地将任何有序的字典转换为字典。另请注意,在 Python 3 中,dicts 无论如何都是有序的,因此您甚至可能不需要这样做。
-
@Peter *Python 3.7
-
我的意思是,遍历您的列表并转换为 dict 是否有问题?这似乎微不足道。
-
@juanpa.arrivillaga 它是一个很大的字典和列表字典,嵌套了很多层。可以迭代它,但它需要一个自定义函数,除非你知道一个模块?
标签: python dictionary yaml pyyaml ordereddictionary