python - Pyyaml 条件语句
问题描述
在下面的代码中,我需要提供多个案例名称。例如: 如果 j["case_name"] == "login" 和 "deploy"给出 "login" 和 "deploy" 案例名称 ,然后将两者的启用值更改为False是否可能?或者还有其他方法可以将多个案例名称的启用值更改为 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
我建议用散文描述你想做的事情,而不是给出误导性的伪代码,因为在这种情况下逻辑并且没有任何意义——你很可能想要一个逻辑的or,这就是这段代码实现的。
推荐阅读
- android - 获取对象整数 json 到 android studio
- sql - 由多个源行更新的目标行
- python - 无法登录在 django 后端创建的超级用户
- javascript - 如何创建与背景渐变和重叠透明形状一起使用的嵌入弯曲背景?
- ios - Searchcontroller 仅适用于 iOS 11 或更高版本
- iphone - 如何将短信 CSV 从诺基亚 2370C 导入到 Iphone?
- django - 在 django 模板中为“用户”提供了什么
- android - 在 Android 应用程序中检查 Internet 连接
- android - Android Studio?工具栏错误
- python - 想要使用 lambda 函数来更改单元格的类型(如果它是 float 类型)