Python 如何对yaml文件进行排序并为每个树提供值
我正在编写一个脚本来读取YAML配置,在for循环和字典的逻辑方面遇到了一些问题。我可以让它在静态完成时打印每个值,但这会使我的脚本失去作用。因为我想使用YAML配置文件动态调用函数 到目前为止,我只能从for脚本中获取第一个键和值。任何时候我尝试使用dataMap[key][0][value]进行进一步操作时,我都无法再继续操作1Python 如何对yaml文件进行排序并为每个树提供值,python,python-3.x,yaml,pyyaml,Python,Python 3.x,Yaml,Pyyaml,我正在编写一个脚本来读取YAML配置,在for循环和字典的逻辑方面遇到了一些问题。我可以让它在静态完成时打印每个值,但这会使我的脚本失去作用。因为我想使用YAML配置文件动态调用函数 到目前为止,我只能从for脚本中获取第一个键和值。任何时候我尝试使用dataMap[key][0][value]进行进一步操作时,我都无法再继续操作1 导入yaml 将open('design.yaml')作为f: 数据映射=yaml.安全荷载(f) 打印(“============================
导入yaml
将open('design.yaml')作为f:
数据映射=yaml.安全荷载(f)
打印(“====================================================”)
打印(“地形图1”)
打印(“====================================================”)
打印(f“拓扑名称:{dataMap['topology'][0]['Name']}”)
打印(f“vPort:{dataMap['topology'][0]['vPort']}”)
打印(f“DG名称:{dataMap['topology'][1]['devicegroup']}”)
打印(f“乘数:{dataMap['topology'][1]['Multiplier']}”)
打印(f“Eth名称:{dataMap['topology'][1]['Eth']['Name']}”)
打印(“自动输出-如上所示”)
打印(“====================================================”)
对于键,dataMap.items()中的值:
#更新
打印(“键:{}-值:{}”。格式(键,值[0]。项())
打印(“=”)
打印(“====================================================”)
#打印(“递归函数测试”)
#打印(“====================================================”)
#myprint(数据地图)
我现在的问题是,如何从YAML文件中提取devicegroup信息?将值[0]更改为值[1]会导致索引问题
print("KEY: {} - VALUE: {}".format(key, value[1].items()))
IndexError: list index out of range
那么,我该如何使用此函数进一步深入YAML文件呢?我不是100%确定,但我认为不会对f字符串中的函数调用求值,所以请尝试:
print("KEY: {} - VALUE: {}".format(key, value[0].items()))
相反
此外,键
配置的值是一个序列(即作为Python列表加载),它只有一个元素,因此您不能在该序列中进一步索引0
您最好尝试执行以下操作:
for key, values in dataMap.items():
for idx, value in enumerate(values):
print("KEY: {} - VALUE[{}]: {}".format(key, idx, value.items()))
print("====")
非常感谢。它很管用,但不完全是我想要的。。更新了我上面的帖子,显示了新的输出。“上面”只起介词或副词的作用,两者都不能取限定词“my”。“下文”和定冠词“The”也是如此。因此,请使用“我的帖子上面”分别。“下面的建议”。这正是我想要的!谢谢你的帮助。请制作一个复制你的问题的最小代码示例,并确保你的文章格式正确。
print("KEY: {} - VALUE: {}".format(key, value[0].items()))
for key, values in dataMap.items():
for idx, value in enumerate(values):
print("KEY: {} - VALUE[{}]: {}".format(key, idx, value.items()))
print("====")