繁体   English   中英

将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']

我知道必须先打开文件,然后将数据存储在变量中,但是我无法弄清楚如何在列表中分别输入每个元素。 理想情况下,我想使用append函数,因此不必每次都确定“用户”的大小。

with open("employees.yaml", 'r') as stream:
    out = yaml.load(stream)
    print out['Employees']['user']

应该已经为您提供了用户列表。还请注意,您的Yaml用户节点后缺少一个破折号

YAML序列会为您翻译成python列表(至少在使用PyYAMLruamel.yaml时 ),因此您不必自己添加任何内容。

在PyYAML和ruamel.yaml中,您要么将文件/流传递给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']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM