通过 ConfigParser 获取的类型转换字典值

Typecast dictionary values obtained via ConfigParser

我正在使用 ConfigParser 获取配置文件中设置的大量变量,CONFIG.txt。

import ConfigParser
parser = ConfigParser.ConfigParser()
parser.read('CONFIG.txt')
settings = dict(parser.items('some_section'))

我实际上从不同的配置文件部分创建了几个字典,并以嵌套格式存储它们。我想将变量以字典格式存储,因为这样可以很容易地一次将多个变量传递给各种函数。 ConfigParser 将文件中的所有文本存储为字符串。有没有一种快速的方法来正确地对变量进行类型转换。 一些变量是字符串列表,一些是字符串,一些是整数,一些是浮点数。我可以按照自己喜欢的方式格式化配置文件,如果有人可以建议更合适的替代方案,我什至不需要使用 ConfigParser。

谢谢。

考虑到您可以使用任何喜欢的格式,我认为最简单的方法是 JSON:

$ cat a.json
{
  "categ": {
    "one": 0.3,
    "two": 123,
    "three": "hello",
    "four": true
  },
  "other": [1, 2, 3]
}
$ python -c 'import json; print json.load(open("a.json"))'
{u'categ': {u'four': True, u'three': u'hello', u'two': 123, u'one': 0.3}, u'other': [1, 2, 3]}

您可以免费获得任意嵌套类型和基本类型,并且使用 json 模块非常容易加载。