【发布时间】:2015-12-09 13:45:00
【问题描述】:
我刚开始与ConfigParser 合作,它看起来很有趣,但我对自己的一个想法很感兴趣。我正在尝试将 configurationFile.ini 中的所有部分与第一部分进行比较。
configurationFile.ini 演示示例:
[DefaultSection]
key1 : value1
key2 : value2
key3 : value3
.
.
.
keyn : valuen
[Section2]
key1 : value5
key2 : value6
key3 : value7
.
.
.
keyn : valuen
[Section3]
key1 : value8
key2 : value9
key3 : value10
.
.
.
keyn : valuen
我要做的是将每个部分与默认部分进行比较,看看子部分是否有任何差异。我想看看所有其余部分的键是否与默认键匹配,我不在乎的值。如果密钥不匹配,则应打印丢失的密钥:
例如:section(n) is missing key(5)
我正在使用双字典,我认为这是最合适的查找差异的方法,但我的技能有限,我找不到解决方案。
加载和解析数据的代码示例:
#!/usr/bin/python
import pprint
import ConfigParser
if __name__ == '__main__':
configObj = ConfigParser.ConfigParser()
configObj.read('configurationFile.ini')
listOfSections = configObj.sections()
doubleDictionary = {}
for section in listOfSections:
doubleDictionary[section] = configObj.items(section)
pprint.pprint(doubleDictionary)
"""{'dictionary_1': [('key_1', 'value_1'),
('key_2', 'value_2'),
('key_3', 'value_3')],
'dictionary_2': [('key_1', 'value_4'),
('key_2', 'value_5')],
'dictionary_3': [('key_1', 'value_6'),
('key_2', 'value_7')]}"""
我想将 dictionary_1 的所有键与 configurationFile.ini 中的所有字典进行比较。脚本当然应该是通用的,能够处理 n 个字典和 n 个键。
感谢大家花费时间和精力来帮助我。
【问题讨论】:
标签: python dictionary compare configparser