基于 YAML 数据的条件 Python for 循环
Conditional Python for loop based on YAML data
我是 Python 的新手,所以请多多包涵。我想弄清楚如何循环访问 YAML 文件中的一组值。使用 PyYAML 解析该文件,然后需要将其送入循环。例如,这里有一些 YAML:
dohicky.yml
---
#Example file
dohicky:
"1":
Stuff:
- Data
- Data
Morestuff:
- Data
- Data
"2":
Stuff:
- Data
- Data
Morestuff:
- Data
- Data
"n":
- Etc
首先,我正在提取 YAML 的内容。
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" 的输出,但实际上,我需要使用该数据创建一个对象。
您可以使用以下代码遍历 "dohicky" 下的每个编号 "id":
for dohicky_id in dohicky['dohicky']:
stuff = dohicky['dohicky'][dohicky_id]['Stuff']
在这种情况下,内容是数据字典列表。如果出于某种原因你不能使用字典,并且你想将数据字典转换为对象,你可以通过查看以下问题来完成:Convert Python dict to object?
我是 Python 的新手,所以请多多包涵。我想弄清楚如何循环访问 YAML 文件中的一组值。使用 PyYAML 解析该文件,然后需要将其送入循环。例如,这里有一些 YAML:
dohicky.yml
---
#Example file
dohicky:
"1":
Stuff:
- Data
- Data
Morestuff:
- Data
- Data
"2":
Stuff:
- Data
- Data
Morestuff:
- Data
- Data
"n":
- Etc
首先,我正在提取 YAML 的内容。
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" 的输出,但实际上,我需要使用该数据创建一个对象。
您可以使用以下代码遍历 "dohicky" 下的每个编号 "id":
for dohicky_id in dohicky['dohicky']:
stuff = dohicky['dohicky'][dohicky_id]['Stuff']
在这种情况下,内容是数据字典列表。如果出于某种原因你不能使用字典,并且你想将数据字典转换为对象,你可以通过查看以下问题来完成:Convert Python dict to object?