将 yaml 解析为 python 中的列表
Parse yaml into a list in python
我需要为一个项目使用 YAML。我有一个 YAML 文件,我用它来填充与数据交互的 Python 程序中的列表。
我的数据是这样的:
Employees:
custid: 200
user: Ash
- Smith
- Cox
我需要 python 代码来遍历此 YAML 文件并填充如下列表:
list_of_Employees = ['Ash', 'Smith' 'Cox']
我知道我必须打开文件然后将数据存储在变量中,但我不知道如何在列表中分别输入每个元素。理想情况下,我想使用附加功能,这样我就不必每次都确定我的 'user' 大小。
with open("employees.yaml", 'r') as stream:
out = yaml.load(stream)
print out['Employees']['user']
应该已经为您提供了 users.Also 的列表,请注意您的 yaml 在用户节点
之后缺少一个破折号
YAML 序列为您翻译成 python 列表(至少在使用 PyYAML or ruamel.yaml 时),因此您不必自己附加任何内容。
在 PyYAML 和 ruamel.yaml 中,您要么将 file/stream 传递给 load()
例程,要么将其传递给它一个字符串。两者:
import ruamel.yaml
with open('input.yaml') as fp:
data = ruamel.yaml.load(fp)
和
import ruamel.yaml
with open('input.yaml') as fp:
str_data = fp.read()
data = ruamel.yaml.load(str_data)
做同样的事情。
假设您将输入更正为:
Employees:
custid: 200
user:
- Ash
- Smith
- Cox
可以打印出数据:
{'Employees': {'custid': 200, 'user': ['Ash', 'Smith', 'Cox']}}
并看到列表已经存在并且可以通过正常的 dict 查找访问:data['Employees']['user']
我需要为一个项目使用 YAML。我有一个 YAML 文件,我用它来填充与数据交互的 Python 程序中的列表。
我的数据是这样的:
Employees:
custid: 200
user: Ash
- Smith
- Cox
我需要 python 代码来遍历此 YAML 文件并填充如下列表:
list_of_Employees = ['Ash', 'Smith' 'Cox']
我知道我必须打开文件然后将数据存储在变量中,但我不知道如何在列表中分别输入每个元素。理想情况下,我想使用附加功能,这样我就不必每次都确定我的 'user' 大小。
with open("employees.yaml", 'r') as stream:
out = yaml.load(stream)
print out['Employees']['user']
应该已经为您提供了 users.Also 的列表,请注意您的 yaml 在用户节点
之后缺少一个破折号YAML 序列为您翻译成 python 列表(至少在使用 PyYAML or ruamel.yaml 时),因此您不必自己附加任何内容。
在 PyYAML 和 ruamel.yaml 中,您要么将 file/stream 传递给 load()
例程,要么将其传递给它一个字符串。两者:
import ruamel.yaml
with open('input.yaml') as fp:
data = ruamel.yaml.load(fp)
和
import ruamel.yaml
with open('input.yaml') as fp:
str_data = fp.read()
data = ruamel.yaml.load(str_data)
做同样的事情。
假设您将输入更正为:
Employees:
custid: 200
user:
- Ash
- Smith
- Cox
可以打印出数据:
{'Employees': {'custid': 200, 'user': ['Ash', 'Smith', 'Cox']}}
并看到列表已经存在并且可以通过正常的 dict 查找访问:data['Employees']['user']