我想在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 (给我以后可能需要的灵活性)中工作,以满足两个主要目的:
也加载重复键及其值。不要忽略它们
时间:加载不应太慢
我该如何解决?