Python - 解析 YAML 字典以按层次结构获取键
Python - Parse YAML dict to get keys by heirarchy
我有一个 YAML 字典,我需要在其中迭代层次结构的第二个键(/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)
error line 5
paths = api['api'][][]['pass_key']
^ SyntaxError: invalid syntax
如果您 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
我有一个 YAML 字典,我需要在其中迭代层次结构的第二个键(/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)
error line 5 paths = api['api'][][]['pass_key'] ^ SyntaxError: invalid syntax
如果您 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