Cannot Access Dictionary
sblakey at freei.net
sblakey at freei.net
Sat Mar 25 01:26:12 CET 2000
On 25 Mar, apjewell at bigfoot.com wrote:
> Well, I tried everything I could think of and couldn't figure this one
> out. I'm a new user so maybe it's something easy - any help would be
> greatly appreciated.
> I have a class that reads in a configuration file. The configuration
> file is separated into sections, each section becomes an element in the
> AppInfo array.
> Each element in a section is entered as a key:value dictionary entry.
> So all of my juicy data is contained in the AppInfo array (E.G.,
> self.AppInfo["KeyName"] = "Value"). I have an access function called
> GetEnvList which looks like this:
> def GetEnvList(self, *ReqEnvName):
> Name: GetEnvList
> Desc: An access method to return a list describing all the
> environments listed in the configuration file. These
> # If ReqEnvName exists
> if ReqEnvName:
> print "Requested Name is: %s--" % (ReqEnvName)
> EnvData = self.AppInfo[self.secEnv].get(ReqEnvName,
> "That environment was not found in this configuration
> EnvData = self.AppInfo[self.secEnv]
> return EnvData
> My class is called AppInCM. There's the setup - NOW, if I import this
> class interactively I CAN successfully access a specific environment by
> myClass.AppInfo[self.secEnv].get("KeyName", "Couldn't get it")
> or, for simplicity, myClass.AppInfo["KeyName"].
> But whenever I use my handydandy GetEnvList("KeyName") function, the
> entry can't be found, e.g.:
> Requested Name is: Development
> 'That environment was not found in this configuration file.'
> Does anyone have any idea what this might be? The function works fine
> without the parameter, i.e., myC.GetEnvList() will return the entire
> array of dictionary entries. I can access my entries WITHOUT the
> function so I know they're load OK. What gives?? Thanks for your time!
> Andy Jewell
> Sent via Deja.com http://www.deja.com/
> Before you buy.
Keep in mind that the *argv form collects remaining arguments in a
tuple, even if there is ony one remaining argument. Inside the
function, the dictionary is failing to lookup the key ('Development', ).
... print 'argv is %s' % argv
... print argv
argv is spam
Is this really what you want?
As an aside, your description of your problem sounds like you are trying
to parse something like windows .ini files. You are aware of the
ConfigParser module, correct?
More information about the Python-list