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

时间:2016-01-23 20:20:36

标签: python dictionary configparser

目前,我正在使用configparser从.ini文件中创建Person-class对象的字典,看起来像这样(在真正的字典中,还有更多的人):

[Pers1]
name = Alice
sex = female

[Pers2]
name = Bob
sex = male

此解析的字典称为people,因此people['Pers1'].namename的{​​{1}}属性,Pers1"Alice"people['Pers2'].sex,依此类推。

现在,假设我希望Alice拥有另一个名为"male"的属性。 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中没有字典词典...

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

1 个答案:

答案 0 :(得分:1)

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

例如,合格的属性名称:

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

请注意,这些仍将作为“平面”退回。 options列表,例如第一个标记的密钥为"tags.COMPANY"。您需要在.上拆分选项名称并自行处理结果。

另一种方法是使用一种格式来存储嵌套数据并直接翻译成列表和字典,例如YAML。