2015-11-11 3 views
0

Я не уверен, что я делаю неправильно. Предыдущий код был такой:Configparser Integer

volume = min(60, max(30, volume)) 

Однако после попытки с ConfigParser я получаю ошибку 500 на моем Twilio Server.

volume = min(configParser.get('config_searchandplay', 'volume_max'), max(configParser.get('config_searchandplay', 'volume_min'), volume)) #Max Volume Spam Protection 

CONFIG.INI

[config_searchandplay] 
#Volume Protection 
volume_max = 90 
volume_min = 10 

ответ

1

Проблема вашего метода состоит в том, что configParser.get дает вам (юникод) строку. Таким образом, вы должны преобразовать значения первого на номер (с помощью int() или float()):

vol_max = int(configParser.get('config_searchandplay', 'volume_max')) 
vol_min = int(configParser.get('config_searchandplay', 'volume_min')) 
volume = min(vol_max, max(vol_min, volume)) 

Несмотря на то, min работы со строками:

>>> min(u'90',u'10') 
u'10' 

Это не всегда будет давать ответ, который вы ищете, так как это делает сравнение строк. Ниже то, что вы хотите избежать:

>>> min(u'9',u'10') 
u'10' 

Поэтому вам нужно преобразовать строку в число:

>>> min(int(u'9'),(u'90')) 
9 
+0

Большое спасибо, скоро проверим! –

4

Вы должны использовать:

ConfigParser.getint(section, option) 

Вместо того, литьем.

volume = min(configParser.getint('config_searchandplay', 'volume_max'), max(configParser.getint('config_searchandplay', 'volume_min'), volume)) #Max Volume Spam Protection 
Смежные вопросы