繁体   English   中英

如何使用python返回部分JSON响应?

[英]How to return a partial JSON response using python?

我有一个json(或python字典),我想定义一个字段白名单。

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

指定名字,角色语言和名字应该输出:

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

对于第一级来说很容易做到,但是对于第二,第三级我该怎么办呢...

也许您可以创建一个递归函数来检查每个字典元素的类型及其白名单成员身份。 如果元素N的类型为字典,请再次调用以增加某个级别计数器的功能。

如果您知道如何对“第一级”进行操作,请对“第二,第三,第三级等”进行递归操作。

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM