在Ruamel Yaml中加载重复密钥

时间:2018-07-11 15:58:45

标签: python yaml ruamel.yaml

我想在Ruamel Yaml中加载重复的键。我有一个要求。给定输入加载文件的巨大大小,我必须使用CLOADER。因此,我需要一个Loading Hack来使用Cloader加载重复的键及其值。 示例:

a.yaml

a : {a1:1,a2:2,a3:3}
a : {a1:4,a2:5,a3:6}
b : {b1:1,b2:2}

a.py

document = open("a.yaml", "r")
yaml = ruamel.yaml.YAML()
yaml.allow_duplicate_keys = True
data = yaml.load(document)
ruamel.yaml.round_trip_dump(data, sys.stdout)

输出为:

a: {a1: 4, a2: 5, a3: 6}
b: {b1: 1, b2: 2}

第一行“ a”丢失。 我在Getting duplicate keys in YAML using Python的帮助下在PyYAML中进行了尝试,但问题是: 对于具有40-5万行的文件(大约55秒),加载速度太慢。因此,我阅读了一些论坛,并知道应该使用“ CLOADER”。 (我正在尝试为pyyaml获取CLOADER)。

但是我希望这段代码可以在 ruamel_yaml (给我以后可能需要的灵活性)中工作,以满足两个主要目的:

  1. 也加载重复键及其值。不要忽略它们

  2. 时间:加载不应太慢

我该如何解决?

0 个答案:

没有答案