我可以使用configparser来制作词典的词典吗?

我可以使用configparser来制作词典的词典吗?

问题描述:

目前,我使用configparser使个人类对象的从.ini文件的字典,它看起来像这样(在真正的字典,也有越来越多的人):我可以使用configparser来制作词典的词典吗?

[Pers1] 
name = Alice 
sex = female 

[Pers2] 
name = Bob 
sex = male 

这解析字典称为people,所以people['Pers1'].namename属性Pers1"Alice"people['Pers2'].sex"male",依此类推。

现在,假设我希望Alice拥有另一个属性,名为tagstags将是一个字典,具有这样的结构:

people['Pers1'].tags = { 
'Employed': 
    {COMPANY: 'Macrosoft', 
    EMPLOYEE_SINCE: '1/5/2005' 
    }, 
'LicensedPilot': 
    {LICENSE_ISSUED: '6/7/2007', 
    EXPIRATION_DATE: '12/11/2017' 
    } 
} 

tags是可以是空的,或者可包含多个字典(虽然只有一个嵌套深一个字典,所以没有字典-的-字典-的-dictionaries ...在tags)。

有没有办法设置configparser读取.ini并创建这些字典?

INI本身就是一种平面格式。如果你想存储嵌套数据,你需要处理它。

例如,合格的属性名称:

[Pers1] 
name = Alice 
sex = female 
tags.COMPANY = Macrosoft 
tags.EMPLOYEE_SINCE = 1/5/2005 

注意,这些仍然会返回一个“平” options列表,例如第一个标签将有一个密钥"tags.COMPANY"。您需要拆分.上的选项名称并自行处理结果。

另一种方法是使用旨在存储嵌套数据并直接转换为列表和词典(如YAML)的格式。