gpt4 book ai didi

python ordereddict 还是 OrderedDict?

转载 作者:太空宇宙 更新时间:2023-11-04 08:51:06 25 4
gpt4 key购买 nike

我现在很迷茫。我正在使用 PyYAML 编辑一些 YAML 文件。

data = yaml.load_all(open('testingyaml.yaml'),Loader=yaml.RoundTripLoader)

我的 testingyaml.yaml 文件包含以下内容:

spring:
profiles: dev
datasource:
url: jdbc:postgresql://127.0.0.1:5432/nfvgrid
dns:
enable: false
cassandra:
host: 192.168.7.151

当我打印数据时,它会打印以下内容:

ordereddict([('spring', ordereddict([('profiles', 'dev'), ('datasource', ordereddict([('url', 'jdbc:postgresql://127.0.0.1 :5432/nfvgrid')]))])), ('dns', ordereddict([('enable', False)])), ('cassandra', ordereddict([('host', '192.168.7.151' )]))])

我还想对这个有序字典执行一些操作,但 python 抛出错误 NameError: name 'ordereddict' is not defined

通常是 OrderedDict 但 PyYAML 以某种方式返回 ordereddict。我该如何解决这个问题?

最佳答案

您几乎可以肯定没有按照说明使用 pyyaml,因为它没有 RoundTripLoader。相反,您可能正在使用 ruamel.yaml .

此替代方案使用自己的 ruamel.ordereddict在 python 2 安装上, native collections.OrderedDict 在 python 3 上。此替代方案支持 OrderedDict 执行的大多数操作,因此您没有理由不能操作它。请参阅其文档。

但是,如果你想从一个转换为另一个,你可以这样做:

x = collections.OrderedDict(some_ruamel_ordered_dict.items())

关于python ordereddict 还是 OrderedDict?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35164913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com