忽略配置文件解析器python中的非现有属性

时间:2017-07-07 11:35:38

标签: python configparser

我有一个函数一次返回1个列表,如下所示

['7:49', 'Section1', '181', '1578', '634', '4055']
['7:49', 'Section2', '181', '1578', '634', '4055']

这些值是time,section,count,avg,min,max(我知道这将永远是序列) 我的目的是在任何值超出配置文件中定义的限制时发出警报。

所以我创建了一个如下所示的配置

[Section1]
Count:10
Min:20
Max:100
Avg:50
[Section2]
Count:10
Min:20
Max:100
Avg:50

我检查最大和最小限制的功能

def checklimit(line):
    print "Inside CheckLimit", line[1],line[4],line[5]
    if line[4] < ConfigSectionMap(line[1])['min'] or line[5] > ConfigSectionMap(line[1])['max']:
        sendAlert(line)

这样可以正常工作,但这可以改进并且有一些极端情况。 假设有人将配置保留如下

[Section1]
Count:10
Min:
Max:
Avg:50
[Section2]
Count:10
Avg:50

意味着用户只想检查Count和Avg。如何在我的代码中处理这些情况,以便只检查配置文件中给出的必需参数。我使用了here

中的Config Parser

欢迎提出问题标题改进的建议。放一个很难。感谢

1 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题。通过键查找,您可以使用dict.get()方法在词典中提供回退值。

所以而不是

ConfigSectionMap(line[1])['min']

你可以使用这样的东西,如果密钥不存在,它将返回0

ConfigSectionMap(line[1]).get('min', 0)