ConfigParser
требует, чтобы все разделы, ключи и значения были строками; не удивительно. У него есть методы преобразования значений в типы данных с помощью getfloat
, getint
, getboolean
. Если вы не знаете тип данных, вы можете обернуть get ()
с помощью eval ()
, чтобы получить оценку строки, например:
>>> from ConfigParser import SafeConfigParser
>>> cp = SafeConfigParser()
>>> cp.add_section('one')
>>> cp.set('one', 'key', '42')
>>> print cp.get('one', 'key')
'42'
>>> print eval(cp.get('one', 'key'))
42
>>> cp.set('one', 'key', 'None')
>>> print eval(cp.get('one', 'key'))
None
>>>
Есть ли лучший способ ? Я предполагаю, что есть серьезные проблемы с безопасностью при оценке текста из файла, что я признаю; Я полностью доверяю файлу.
Я думал, что буду использовать для этого pickle
, но мне бы очень хотелось, чтобы файл конфигурации был доступен для чтения человеком.
Как бы вы это сделали?