我使用yaml.safe_load
方法处理文件,我可以看到该调用返回的数据顺序不同
这是我的代码:
a=yam.safe_load('{"method1": "value1","method2": "value2"}' )
print(a)
这是输出
{'method2': 'value2', 'method1': 'value1'}
如何保留原始订单?
答案 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子类中的映射以保留顺序(和注释等)。