[英]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列表(至少在使用PyYAML或ruamel.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.