【问题标题】:Load a yaml file and Iterate over a list in python加载一个yaml文件并在python中迭代一个列表
【发布时间】:2022-01-05 13:24:19
【问题描述】:

我有一个包含以下内容的 yaml 文件:

testcases:
 - testcase_1:
    username:
    password:
 - testcase_2:
    username:
    password:  

如何遍历过度内容。我想首先使用 testcases_1 中存在的变量运行测试用例,然后再使用 testcase_2 中的变量运行测试用例。 ?我该怎么做?///

【问题讨论】:

  • 可以安装yaml模块来加载文件。 pip install pyyamlpypi.org/project/PyYAML
  • 看起来你实际上是在要求 几个 的东西——加载 YAML、迭代列表和运行测试用例。您在为哪些问题苦苦挣扎?
  • @MisterMiyagi 嘿,感谢您的回复。所以我主要关注的是迭代列表并进一步运行测试用例。

标签: python-3.x dictionary yaml pytest pyyaml


【解决方案1】:

您可以使用yaml.safe_load 函数来加载内容,然后您可以对其进行迭代:

import yaml

content = None

with open("D:/data.yml") as f:
    try:
        content = yaml.safe_load(f)
    except yaml.YAMLError as e:
        print(e)

print(content)

for item in content['testcases']:
    print(item)

上面的代码会输出:

{'testcases': [{'testcase_1': {'username': None, 'password': None}}, {'testcase_2': {'username': None, 'password': None}}]}
{'testcase_1': {'username': None, 'password': None}}
{'testcase_2': {'username': None, 'password': None}}

【讨论】:

  • 您好,感谢您的回复。我尝试了你的建议。但是没有任何打印语句起作用。我怎样才能改变它?
  • 嗨苏尼塔!我已将代码复制粘贴到我的 IDE 中,prints 工作正常。你可以不用他们。我现在正在更新响应以显示 content 的外观。它包含格式为dict 的文件中的数据。从那时起,您可以解析并从中提取您需要的任何数据
  • 嘿丹.. 感谢您的所有帮助。我稍微更改了 yaml 文件的内容。你能看看吗?是的,我一定会看看你的变化。
  • 我已根据您的最新更改更新了输出
  • 非常感谢丹!!!它奏效了。
猜你喜欢
  • 2020-10-20
  • 1970-01-01
  • 2021-08-09
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-14
相关资源
最近更新 更多