У меня есть диктофон YAML, в котором мне нужно перебрать 2-й ключ иерархии (/home,/career,/help,/), чтобы найти наличие ключа «pass_key». Расположение для «pass_key» всегда будет фиксированным (4-я иерархия).
api:
/home:
post:
pass_key: some_value
/career:
get:
pass_key: some_value
/help:
post:
pass_key: some_value
Проблема в том, что я не могу получить ключ, не зная его имени, так как звездочка здесь не помогает :) Как я могу этого добиться? Любая помощь будет оценена. Спасибо!
import yaml
with open(r'./test.yaml') as file:
api = yaml.load(file, Loader=yaml.FullLoader)
check_key = api['api'][*][*]['pass_key']
print(check_key)
строка ошибки 5 пути = api['api'][][]['pass_key'] ^ SyntaxError: неверный синтаксис
Если вы на 100% уверены в структуре словаря, в качестве тривиального решения можно использовать базовые циклы:
for layer2_vals in api['api'].values():
for layer3_vals in layer2_vals.values():
print(layer3_vals['pass_key'])
выход
some_value
some_value
some_value