基于YAML d的条件Python for循环

2024-09-27 07:18:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python不熟悉,所以请容忍我。我正试图找出如何循环遍历YAML文件中的一组值。使用PyYAML解析文件,然后需要将其输入到循环中。下面是一些YAML示例:

多希基·yml

---
#Example file
dohicky:
  "1":
    Stuff:
      - Data
      - Data
    Morestuff:
      - Data
      - Data
  "2":
    Stuff:
      - Data
      - Data
    Morestuff:
      - Data
      - Data
  "n":
    - Etc

首先,我要把山药里的东西拿出来。

import yaml
f = open('dohicky.yml')
dohicky = yaml.safe_load(f)
f.close()

现在我只需要一个for循环或while循环来遍历“dohicky”下的每个编号“id”。

for x in xrange(1, 2):

所以很明显这是可行的,但是只为2个元素静态定义。不确定如何例如:

"do while" id = dohicky["dohicky"]["x"] is true. #Not code, just concept!

我马上遇到的另一个问题是如何在这个循环中创建一个对象。例如:

id(x) = dohicky(Pass other info from YAML to class) #Not code, just concept!

不幸的是,我还不太熟悉Python(使用pyyaml)来理解语法。非常感谢您的帮助!

*更新* 这是一个sudo代码,但你至少应该明白我在做什么。

import yaml
f = open('dohicky.yml')
dohicky = yaml.safe_load(f)
f.close()

for x in dohicky["dohicky"]["x"]
        test = dohicky["dohicky"]["1"]["Stuff"]
        print test

在这个测试中,我只是打印“Stuff”的输出,但实际上,我需要使用该数据创建一个对象。


Tags: 文件importidyamlforclosedatayml
1条回答
网友
1楼 · 发布于 2024-09-27 07:18:46

您可以使用以下代码遍历“dohicky”下每个编号的“id”:

for dohicky_id in dohicky['dohicky']:
    stuff = dohicky['dohicky'][dohicky_id]['Stuff']

在本例中,内容是一个数据指令列表。如果由于任何原因无法使用字典,并且希望将数据字典转换为对象,可以通过查看以下问题来完成此操作:Convert Python dict to object?

相关问题 更多 >

    热门问题