我正在按照以下链接中的示例读取配置文件:https://wiki.python.org/moin/ConfigParserExamples,但是我遇到了一个KeyError错误,无法弄清楚原因。它可以读取文件,我甚至可以打印出各个部分,但我认为我做了一些非常愚蠢的事情。非常感谢任何帮助。
以下是代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ConfigParser
import logging
config_default=ConfigParser.ConfigParser()
class Setting(object):
def get_setting(self, section, my_setting):
default_setting = self.default_section_map(section)[my_setting]
return default_setting
def default_section_map(self,section):
dict_default = {}
config_default.read('setting.cfg')
sec=config_default.sections()
options_default = config_default.options(section)
logging.info('options_default: {0}'.format(options_default))
for option in options_default:
try:
dict_default[option] = config_default.get(section, option)
if dict_default[option] == -1:
print("skip: %s" % option)
except:
print("exception on %s!" % option)
dict_default[option] = None
return dict_default
return complete_path
if __name__ == '__main__':
conf=Setting()
host=conf.get_setting('mainstuff','name')
#host=conf.setting
print 'host setting is :' + host
我的配置文件名为setting.cfg
,内容如下:
[mainstuff]
name = test1
domain = test2
[othersection]
database_ismaster = no
database_master = test3
database_default = test4
[mysql]
port = 311111
user = someuser
passwd = somecrazylongpassword
[api]
port = 1111
错误信息如下...
域名异常!追踪到最近的调用:在"./t.py"文件中第51行,执行以下代码:
host=conf.get_setting('mainstuff','name')
但是,在"./t.py"文件中第14行,获取默认设置时出现了错误:
default_setting = self.default_section_map(section)[my_setting]
KeyError: 'name'