Получить значение ключей любого уровня вложенности из 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)