2012-10-03 2 views
0

중첩 된 MutableMapping을 중첩 된 사전으로 변환하고 있습니다. MutableMapping이 있다고 말하면 클래스를 상속 받는다는 것을 의미합니다.Python 중첩 된 MutableMapping을 중첩 된 dict로 변환

'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의 변형 기능을 사용하도록 명령을 다시 정렬합니다.