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