我对YAML和Python都很陌生。我试图列出我的YAML文件中的所有键和值。但无法弄清楚如何做到这一点。 Appriciate帮助。
---
Task_T0:
-
args:
task_path: "..."
executor:
type: "T0"
Task_T1:
-
args:
task_path: "~/task_file"
executor:
type: "T1"
data:
params:
p1: 0
我想列出所有节点(Task_T ...)。 这是尝试的,因为我无法找到任何API来执行此操作:
parsed_task = yaml.safe_load(rendered_task)
for task_obj in enumerate(parsed_task):
path = task_obj[0]["args"]["task_path"]
print("task path::" + path)
我收到此错误:
'int' object has no attribute '__getitem__'
如果我将我的代码修改为:
parsed_task = yaml.safe_load(rendered_task)
for task_obj in enumerate(parsed_task):
path = task_obj["args"]["task_path"]
print("task path::" + path)
然后我收到了这个错误:
tuple indices must be integers, not str
答案 0 :(得分:1)
最后使用以下代码使其工作:
parsed_task = yaml.safe_load(task_file)
for task_obj in enumerate(parsed_task):
name = task_obj[1]
print("task name:" + name)
以上代码打印任务名称。 如果您想了解每项任务的更多细节,那么
parsed_task = yaml.safe_load(rendered_task)
for scenario_obj in enumerate(parsed_task):
name = scenario_obj[1]
print("scenario name:" + name)
print(parsed_task[name][0]["args"]["task_path"])
上面的代码会打印每个节点的任务路径。