2014-02-12 26 views
1

我有一個JSON(或Python字典),我想定義一個字段的白名單。如何使用python返回部分JSON響應?

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

指定姓名,角色語言首先應該輸出:

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

它很容易爲第一級做,但我怎麼能做到這一點的第二,第三級等等

+0

你的意思是你想要一個'模板'的種類來添加? –

+0

'第一級'?? – 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)