Pyyaml 条件语句

Pyyaml conditional statement

在下面的代码中,我需要给出多个案例名称。 例如:提供“登录”和“部署”案例名称 if j["case_name"] == "登录" 和 "部署" 然后将两者的启用值更改为 False 可能吗?或者有一些其他方法可以将多个 casename 的 enabled 值更改为 false。

    import yaml

y = yaml.safe_load(open("data.yaml", "r")) 

for i in y["tiers"]:
    for j in i["testcases"]:
        if j["case_name"] == "login":
            j["enabled"] = False

yaml.dump(y, open("new_data.yaml", "x"))





Below  is the content from YAML file
    tiers:
    -
        name: testing
        order: 1
        description: ''
        testcases:
            -
                case_name: deploy
                project_name: project
                enabled: true
                criteria: 100
                blocking: false
                clean_flag: false
                description: ''
                run:
                    name: 'deploy'
    
            -
                case_name: login
                project_name: project
                enabled: true
                criteria: 100
                blocking: false
                clean_flag: false
                description: ''
                run:
                    name: 'login'

我不完全确定这是你想要的,但听起来你想要做的

for i in y["tiers"]:
    for j in i["testcases"]:
        if j["case_name"] in ["login", "deploy"]:
            j["enabled"] = False

我建议用散文描述你想做什么,而不是给出误导性的伪代码,因为逻辑 and 在这种情况下没有任何意义——你很可能想要一个逻辑或者,就是这段代码实现的。