Python 为yaml文件设置类似的备选方案

Python 为yaml文件设置类似的备选方案,python,containers,yaml,Python,Containers,Yaml,我使用一个YAML文件来存储Python脚本使用的一些数据 结构大致如下所示: <id1>: email: <email address for id 1> phone: <phone number for id 1> <id2>: email: <email address for id 2> phone: <phone number for id 2> : 电邮: 电话: : 电邮:

我使用一个YAML文件来存储Python脚本使用的一些数据

结构大致如下所示:

<id1>:
    email: <email address for id 1>
    phone: <phone number for id 1>

<id2>:
    email: <email address for id 2>
    phone: <phone number for id 2>
:
电邮:
电话:
:
电邮:
电话:
解析此YAML文件时,我会得到一个字典:

{<id1>: {'email': <email address for id 1>, 'phone': <phone number for id 1>}, {<id2>: {'email': <email address for id 2>, 'phone': <phone number for id 2>}}
{:{'email':,'phone':},{:{'email':,'phone':}
当使用此配置时,可以说ID被用作最高级别的标识符。但对于我的脚本,情况不应该是这样的:我希望能够将各自的数据保存在一起,而无需将其中一个键放在更高级别。为了说明这一点,我更喜欢这样:

id:    <id 1>
email: <email address for id 1>
phone: <phone number for id 1>

id:    <id 2>
email: <email address for id 2>
phone: <phone number for id 2>
[{"id": "<id1>", "email": "<email address for id 1>", "phone": "<phone number for id 1>"}, {"id": "<id2>", "email": "<email address for id 2>", "phone": "<phone number for id 2>"}]
id:
电邮:
电话:
身份证件:
电邮:
电话:
解析时,我应该得到如下结果:

{{'id': <id1>, 'email': <email address for id 1>, 'phone': <phone number for id 1>}, {'id': <id2>, 'email': <email address for id 2>, 'phone': <phone number for id 2>}}
{{'id':,'email':,'phone':},{'id':,'email':,'phone':}

这样的配置存在吗?

您想要的是阵列吗

- id:    <id1>
  email: <email address for id 1>
  phone: <phone number for id 1>
- id:    <id2>
  email: <email address for id 2>
  phone: <phone number for id 2>
contacts = dict((item["id"], item) for item in original_array)