递归嵌套json

def remove_empty_values(d):

    """

    递归遍历嵌套的 JSON,去除 value 为空的key

    """

    # 如果 d 是一个字典,遍历其键值对

    if isinstance(d,dict):

        for k,vin list(d.items()):

            # 如果 v 是一个字典或列表,则递归调用 remove_empty_values 函数

            if isinstance(v,(dict,list)):

                remove_empty_values(v)

            # 如果 v 为空,则删除这个键值对

            elif not v:

                del d[k]

    # 如果 d 是一个列表,则遍历其元素

    elif isinstance(d,list):

        for itemin d:

            # 如果元素是一个字典或列表,则递归调用 remove_empty_values 函数

            if isinstance(item,(dict,list)):

                remove_empty_values(item)

            # 如果元素为空,则删除这个元素

            # elif not item:

            #    d.remove(item)

data= {

    "name": "John",

    "age": 30,

    "address": {

        "street": "123 Main St",

        "city": "",

        "state": "",

        "zip": "12345"

    },

    "phones": [

        "555-1234",

        "",

        "555-5678",

        {"a":""}

    ]

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 8,213评论 0 9
  • 精心整理的 Python 相关的基础知识,用于面试,或者平时复习,都是很好的!废话不多说,直接开搞由于文章过长,萝...
    萝卜大杂烩阅读 2,953评论 0 0
  • 用于python面试整理,主要来源于http://www.cnblogs.com/skiler/p/6952707...
    AIM外星人阅读 7,026评论 0 13
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,148评论 2 16
  • 1python介绍 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无...
    jbb_43b0阅读 2,885评论 0 0

友情链接更多精彩内容