2017-01-18 18 views
0

以下のJSON辞書のNone値を置き換えようとしています。どうすればこのjsonをトラバースし、 "None"の値を空の文字列に置き換えることができますか?私はネストされたjsonをどのようにトラバースするのかを理解するのが難しいです。もし誰かが私を助けてくれるのなら大好きです。以下に例を示します。 やPythonでの要求ライブラリと「取得」要求を行って使用している場合(空の文字列をなしからなど)の値を交換する方法はありますか?Python入れ子JSONの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 
} 
+1

だことJではない息子。 –

答えて

0
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

'{ "名前" "ボビーヌルテーブル"}のJoshリー@' –

+0

?????? –

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) 
関連する問題