Я пытаюсь выяснить, как получить вложенные данные в виде словаря / свойства из файла yaml.
Приведенный ниже код работает, если я предоставляю функции только один уровень.пример:
result = parse_yaml_file(config_yaml_file, 'section')
, но не удается, если я пытаюсь что-то вроде:
result = parse_yaml_file(yaml_file, 'section.sub-section')
или
result = parse_yaml_file(yaml_file, '[\'section\'][\'sub-section\']')
код python3:
def parse_yaml_file(yml_file, section):
print('section : ' + section)
data_dict = {}
try:
with open(yml_file) as f:
data_dict = (yaml.load(f))
except (FileNotFoundError, IOError):
exit_with_error('Issue finding/opening ' + yml_file)
if not section:
return data_dict
else:
return data_dict.get(section)
result = parse_yaml_file(yaml_file, 'section.sub-section.property')
print(json.dumps(result, indent=4))
Можно ли анализировать только часть / раздел файла yaml?Или просто получить один подраздел / свойство из проанализированного результата?
Я знаю, что могу получить его из словаря, например:
data_dict['section']['sub-section']['property']
, но я хочу, чтобы он был гибким, а нежестко закодированы, поскольку данные для захвата предоставляются в качестве аргумента функции.
Большое спасибо за вашу помощь.