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 在这种情况下没有任何意义——你很可能想要一个逻辑或者,就是这段代码实现的。
在下面的代码中,我需要给出多个案例名称。 例如:提供“登录”和“部署”案例名称 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 在这种情况下没有任何意义——你很可能想要一个逻辑或者,就是这段代码实现的。