我可以使用configparser来制作词典的词典吗?
问题描述:
目前,我使用configparser使个人类对象的从.ini文件的字典,它看起来像这样(在真正的字典,也有越来越多的人):我可以使用configparser来制作词典的词典吗?
[Pers1]
name = Alice
sex = female
[Pers2]
name = Bob
sex = male
这解析字典称为people
,所以people['Pers1'].name
是name
属性Pers1
,"Alice"
。 people['Pers2'].sex
是"male"
,依此类推。
现在,假设我希望Alice拥有另一个属性,名为tags
。 tags
将是一个字典,具有这样的结构:
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)的格式。