Преобразование значений ConfigParser в типы данных python

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

Как бы вы это сделали?

11
задан tMC 2 June 2011 в 00:04
поделиться