Получить значение ключей любого уровня вложенности из yaml файла

Есть yaml файл:

name: scene1
SELECTS:
  SELECT1:
    OR:
      kind: 12
  SELECT2:
    AND:
      kind: 11

Требуется получить значение ключа любой степени вложенности

Пытался использовать рекурсивный поиск, но он всегда выдает None

def get_yaml_value(yaml_file_path: str, key: str) -> any:
    """Метод для чтения значения ключа из YAML файла."""
    with open(yaml_file_path, 'r') as f:
        data = yaml.safe_load(f)
        return YAMLHandler._get_value(data, key)

def _get_value(dictionary: dict, key: str) -> any:
    """Вспомогательный метод для рекурсивного поиска значения ключа."""
    if key in dictionary:
        return dictionary[key]
    for k, v in dictionary.items():
        if isinstance(v, dict):
            return YAMLHandler._get_value(v, key)
        return None

yaml_file_path = 'conf/scene1.yaml'
key = "SELECTS.SELECT1"
value = get_yaml_value(yaml_file_path, key)

Ответы (1 шт):

Автор решения: f f
value_of_or = data['SELECTS']['SELECT1']['OR']
→ Ссылка