簡體   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