gpt4 book ai didi

python - 将 YAML 文件读取为列表

转载 作者:太空狗 更新时间:2023-10-30 00:08:46 26 4
gpt4 key购买 nike

我有一个 YAML 文件(只是一个例子):

a:
b: 1
a:
b: 2
c: 1
a:
b: 3

我想读取这个文件,并用 bc 做一些事情。问题是我无法使用 yaml.load() 将此文件作为字典读取,因为它只会给我 {'a':{'b': 3 }} 。相反,我想将其作为字典列表来阅读,即我希望输出类似于:

[
{'a':{'b': 1 }},
{'a':{'b': 2, 'c': 1 }},
{'a':{'b': 3 }}
]

我怎样才能做到这一点?谢谢...

最佳答案

最新的 YAML 规范(1.2,从 2009 年开始)非常明确地指出映射中的键不能重复:

The content of a mapping node is an unordered set of key: value node pairs, with the restriction that each of the keys is unique.

如前所述,您的文件不是有效的 YAML 文件,加载它应该会给您DuplicateKeyError

既然你知道你想要得到什么,那么查看 YAML 将加载什么的最简单方法就是转储数据结构:

import sys
import ruamel.yaml

yaml = ruamel.yaml.YAML()
data = [
{'a':{'b': 1 }},
{'a':{'b': 2, 'c': 1 }},
{'a':{'b': 3 }}
]
yaml.dump(data, sys.stdout)

给出:

- a:
b: 1
- a:
b: 2
c: 1
- a:
b: 3

关于python - 将 YAML 文件读取为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56733679/

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