ConfigParser Help

Jeff Epler jepler at unpythonic.net
Mon Oct 14 20:55:13 CEST 2002


On Mon, Oct 14, 2002 at 09:38:39PM +0300, Karthikesh Raju wrote:
> well, i can live with this but would really be happy with variables a
> dictionary of the sections and its subsections as keys with the RHS
> the values for the keys.

Try something like this:

def convertConfigDict(d, sep="."):
    r = {}
    for k in d:
        s = r
        parts = k.split(sep)
        for part in parts[:-1]:
            s = s.setdefault(part, {})
        s[parts[-1]] = d[k]
    return r

>>> print convertConfigDict({'a.noofusers':'10','a.noofsources':'20','b.noofusers':'10','b.noofsources':'20'})
{'a': {'noofsources': '20', 'noofusers': '10'}, 'b': {'noofusers': '10', 'noofsources': '20'}}

I don't know if you can do this in CongfigParser, but if you have {'a':
1, 'a.b': 2}, you won't care for the results that convertConfigDict
gives you.  (You'll either get a traceback when it tries to execute
1['b']=2, or you'll lose the a.b key when r['a']=1 is executed.

Jeff




More information about the Python-list mailing list