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
, но мне действительно хотелось бы, чтобы файл конфигурации был удобочитаемым.
Как бы вы это сделали?