В последней спецификации YAML (1.2, от 2009 г.) совершенно ясно, что ключи в отображении нельзя дублировать:
Содержимое узла сопоставления представляет собой неупорядоченный набор пар узлов ключ: значение с ограничением уникальности каждого из ключей.
Как указано, ваш файл не является допустимым файлом 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