我正在使用 yaml.safe_load
方法来处理文件,我可以看到该调用返回的数据的顺序不同
这是我的代码:
a=yam.safe_load('{"method1": "value1","method2": "value2"}' )
print(a)
这是输出
{'method2': 'value2', 'method1': 'value1'}
我该怎么做才能保留原来的订单?
最佳答案
您应该使用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子类中的映射以保留顺序(和注释等)。
关于Python yaml safe_load : How to keep the original order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43982772/