Вы можете изменить то, как pyyaml ​​загружает ключи. Например, вы можете использовать defaultdict со списками значений для каждого ключа:

ужен синтаксический анализ файлов YAML, содержащих дубликаты ключей, и все они должны быть проанализированы. Недостаточно пропустить дубликаты. Я знаю, что это противоречит спецификации YAML, и я бы не хотел этого делать, но сторонний инструмент, используемый нами, разрешает такое использование, и мы должны разобраться с ним.

Пример файла:

build:
  step: 'step1'

build:
  step: 'step2'

После анализа у нас должна быть похожая структура данных:

yaml.load('file.yml')
# [('build', [('step', 'step1')]), ('build', [('step', 'step2')])]

dict больше не может использоваться для представления проанализированного содержимого.

Я ищу решение на Python и не нашел библиотеки, поддерживающей это, я что-то пропустил?

В качестве альтернативы, я счастлив написать свою собственную вещь, но хотел бы сделать ее максимально простой.ruamel.yaml выглядит как самый продвинутый YAML-парсер в Python и выглядит умеренно расширяемым, может ли он быть расширен для поддержки дублирующих полей?

Ответы на вопрос(0)

Ваш ответ на вопрос