2014-02-12 3 views
1

json (또는 python 사전)이 있는데 필자는 필드의 허용 목록을 정의하고 싶습니다.Python을 사용하여 부분 JSON 응답을 반환하는 방법은 무엇입니까?

{ 
    "firstname": "user", 
    "last_name":"test", 
    "roles": ["admin", "country"], 
    "languages":{"first":"english", "second":"french"} 
} 

먼저해야 FIRSTNAME, 역할 언어를 지정 및 출력 :

{ 
    "firstname": "user", 
    "roles": ["admin", "country"], 
    "languages":{"first":"english"} 
} 

는하지만, 첫 번째 수준에 대해 쉽게 할 내가 두 번째, 세 번째 수준 등을 위해 그것을 할 수있는 방법을 ...

+0

'템플릿'을 추가 하시겠습니까? –

+0

'first level' ?? – laike9m

+0

어떤 종류의 템플릿 예 – jamesb

답변

0

아마 각 사전 요소의 유형과 화이트리스트 멤버십을 검사하는 재귀 함수를 만들 수 있습니다. 요소 N의 유형이 사전 인 경우, 다시 호출하여 일부 레벨 카운터를 증가시키는 기능을 호출하십시오.

0

"첫 번째 수준"으로 수행하는 방법을 알고 있다면 "두 번째, 세 번째, 수준 등"에 대한 재귀를 적용하십시오.

def dict_filter(d, keep): 
    if isinstance(d, dict): 
     return { k:dict_filter(v, keep) for k,v in d.iteritems() if k in keep } 
    return d 


orig = { 
    "firstname": "user", 
    "last_name":"test", 
    "roles": ["admin", "country"], 
    "languages":{"first":"english", "second":"french"} 
} 

keepers = ['firstname', 'roles', 'languages', 'first'] 
print dict_filter(orig, keepers)