Python替换嵌套JSON中的None值

2024-05-16 09:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在试着在下面的JSON字典中替换None值。如何遍历这个json,并用空字符串替换“None”值?我很难理解如何遍历嵌套json。如果有人能帮我的话我会很乐意的。下面是嵌套json的示例。 或者,在使用python中的请求库执行“get”请求时,是否有一种方法可以替换值(例如从None到空字符串)?在

{  
   'house':{  
      'amount':'$0.00',
      'id':1,
      'value':0.0
   },
   'event':'12.199.136.146',
   'location':'',
   'language':{  
      'language_name':'English',
      'language_id':1,
      'language_symbol':None
   },
   'percentage':1.0,
   'identification':'',
   'source':{  
      'name':'john',
      'id':-1
   },
   'paid':{  
      'amount':'$0.00',
      'format':1,
      'value':0.0
   },
   'score':None
}

Tags: 方法字符串namenoneidjson示例get
2条回答

试试看:

#!/usr/bin/python3
import json
from pprint import pprint

jstr = {  
   'house':{  
      'amount':'$0.00',
      'id':1,
      'value':0.0
   },
   'event':'12.199.136.146',
   'location':'',
   'language':{  
      'language_name':'English',
      'language_id':1,
      'language_symbol':None
   },
   'percentage':1.0,
   'identification':'',
   'source':{  
      'name':'john',
      'id':-1
   },
   'paid':{  
      'amount':'$0.00',
      'format':1,
      'value':0.0
   },
   'score':None
}

data_str = json.dumps(jstr)
data = json.loads(data_str)
pprint(data)


def replaceNone(data_dict,v,rv):
    for key in data_dict.keys():
        if data_dict[key] == v:
            data_dict[key] = rv
        elif type(data_dict[key]) is dict:
            replaceNone(data_dict[key],v,rv)


replaceNone(data,None,"")
pprint(data)
import json

r = json.dumps(j).replace('null', '""')
json.loads(r)

输出:

^{pr2}$

将其转换为字符串并将null(string)替换为"",并将其加载回pythondict

相关问题 更多 >