猿问

Python - 将嵌套字典中的 None 替换为空字符串

我想用嵌套字典中的空字符串替换 None 。


test={

  "order":1234,

  "status":"delivered",

   "items":[

        {

          "name":"sample1",

          "code":"ASU123",

          "unit":None

      } ],

   "product":{"name":None,"code":None}

  }

我想用空字符串替换 None 并将字典的转换存储到另一个变量(如 test1)中。


以下代码不允许我将其存储在另一个变量中。


def replace_none(test_dict): 

  

    # checking for dictionary and replacing if None 

    if isinstance(test_dict, dict): 

        

        for key in test_dict: 

            if test_dict[key] is None: 

                test_dict[key] = '' 

            else: 

                replace_none(test_dict[key]) 

  

    # checking for list, and testing for each value 

    elif isinstance(test_dict, list): 

        for val in test_dict: 

            replace_none(val) 


潇湘沐
浏览 169回答 1
1回答

慕仙森

您可以首先进行深度复制,然后对复制的字典执行您的功能:import copyb = copy.deepcopy(test)replace_none(b)print(test)print(b)输出:{'order': 1234, 'status': 'delivered', 'items': [{'name': 'sample1', 'code': 'ASU123', 'unit': None}], 'product': {'name': None, 'code': None}}{'order': 1234, 'status': 'delivered', 'items': [{'name': 'sample1', 'code': 'ASU123', 'unit': ''}], 'product': {'name': '', 'code': ''}}
随时随地看视频慕课网APP

相关分类

Python
我要回答