Python yaml safe_load : How to keep the original order

标签 python yaml

我正在使用 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/

相关文章:

python - 如何在 numpy 中对二维数组进行 bin?

python - np.where 用字符串创建缺失值

python - 通过与 Pandas 中的另一个数据框匹配来替换列表列的有效方法

Perl:YAML:Hash 如何选择条目?

python - Pandas Value_Counts 选择

python - Pandas 重采样的问题

spring-boot - 如何在 application.yaml 中为 ssl 客户端指定 keystore 和信任库?

ruby - 奇怪的 ruby​​ to_yaml 行为

yaml - 最新版本的 ruamel.yaml 无法解析简单的流映射

node.js - 招摇: is '😱 Could not render this component, see the console' an error message or can it be ignored