Python yaml safe_load:如何保持原始顺序

时间:2017-05-15 15:01:35

标签: python yaml

我使用yaml.safe_load方法处理文件,我可以看到该调用返回的数据顺序不同

这是我的代码:

    a=yam.safe_load('{"method1": "value1","method2": "value2"}' )
    print(a)

这是输出

{'method2': 'value2', 'method1': 'value1'}

如何保留原始订单?

1 个答案:

答案 0 :(得分:0)

您应该使用round_trip_load代替safe_load

from ruamel import yaml

data = yaml.round_trip_load('{"method1": "value1","method2": "value2"}')
for key in data:
    print(key)

根据YAML规范,不保留映射中键的顺序,因此这是向后兼容safe_load的功能。只有round_trip_load自动表示ordereddict子类中的映射以保留顺序(和注释等)。