加载yaml文件作为dict

时间:2019-08-09 19:33:44

标签: python dictionary yaml

我有一个YAML文件,其中存储了用户名及其ssh-keys。它看起来像这样:

---
- bjones:
   name: Bob Jones
   ssh_keys:
   - "ssh-rsa dsgdsgds"
   - "ssh-rsa gdgsadg"
   - "ssh-rsa sagagsa"

- jsmith:
   name: Jimmy Smith
   ssh_keys:
   - "ssh-rsa gjdgjas"

我想把它带入python中作为字典,但不确定如何做。

In [98]: data = yaml.safe_load(open("/user-list.yaml"))
In [99]: type(data)
Out[99]: list

我该从哪里去做这件事?

我还需要第一个具有多个ssh-key的用户,以便这些键也要出现在换行符列表中

1 个答案:

答案 0 :(得分:1)

原始标记 是字典的列表-但您可以将这些字典链接在一起:

>>> from collections import ChainMap
>>> result = ChainMap(*data)
>>> result["jsmith"]
{'name': 'Jimmy Smith', 'ssh_keys': ['ssh-rsa gjdgjas']}

如果您确定原始标记(即len(data) == len(result))中没有重复的条目,则可以使用dict(result)将其安全地转换回单个字典。