2012-10-03 128 views
0

我有一个嵌套的MutableMapping,我希望将其转换为嵌套字典。当我说我有一个MutableMapping时,我当然意味着我有一个继承它的类。结构看起来有点像:Python将嵌套的MutableMapping转换为嵌套字典

'key': <myobject> where myobject is the MutableMapping with more nested myobject's 

我在做这个当前的尝试已导致:

def __makeDict(c): 
    c = dict(c) 
    for item in c: 
     if isinstance(c[item], MutableMapping): 
      c[item] = Configuration.__makeDict(c[item]) 
      return c[item] 
    return c 

饲养嵌套MutableMapping只产生树的最下方水平(我想我理解)。问题是,我如何迭代这个并产生正确的结果?任何意见,赞赏,欢呼。

回答

0
def __makeDict(c): 
    for item in c: 
     if isinstance(c[item], MutableMapping): 
      Configuration.__makeDict(c[item]) 
      c[item] = dict(c[item]) 

    return dict(c) 

想通了。重新排列顺序以使用MutableList的变异性来帮助重建字典。