Python在嵌套的JSON

时间:2017-01-18 02:09:40

标签: python json

我一直试图在下面替换JSON字典中的None值。我将如何遍历这个json,并替换" None"空字符串的值?我很难理解如何遍历嵌套的json。如果有人可以帮助我,我会很高兴。示例嵌套json如下。 或者有一种方法可以在使用" get"时替换值(例如从None到空字符串)。请求python中的Requests库?

{  
   '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
}

2 个答案:

答案 0 :(得分:2)

import json

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

出:

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

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

答案 1 :(得分:0)

试一试:

#!/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)