Python的新手:比較兩個JSON對象和刪除的元素,然後所得的JSON比較其他JSON文件
Default.json
{
"name": {
"provide": ""
},
"test": {
"Fail": {
"centers": None,
"Nearest": 0
},
"far": "",
"Meta": null,
"Only": false,
"Tags": null
},
"Session": "",
"conf": {
"check": "",
"Reg": ""
},
"Token": ""
}
Remote.json
[ {
'name': {
'provide': ''
},
'Name': 'abc',
'test': {
'Service': 'redis',
'Tags': [
'stage'
],
'Fail': {
'centers': None,
'Nearest': 3
},
'Only': false,
'far': '',
'Meta': null
},
'Token': '',
'Session': '',
'conf': {
'Reg': '',
'check': 'name_prefix_match'
},
} ]
我有默認.json和遠程.json。任務我試圖實現的是刪除所有的json元素從remote.json爲誰remote.json的值匹配與自該密鑰的default.json。例如,名稱的值:從default.json {提供商=「」}的名稱匹配:{供應商= 「」}從remote.json。它應該得到remote.json
with open(remote.json) as f:
with open(default.json) as m:
file=json.load(f)
default=json.load(m)
for i in xrange(len(file)):
for key,value in default.items():
#default[key]=value
#a=filter(lambda x: x[""],file.keys())
1.I刪除我沒有得到這個想法這裏如何獲得密鑰,價值從默認並與文件比較?任何幫助,將不勝感激。
我需要從remote.json中刪除元素的原因是因爲我需要將生成的json與其他json文件「local.json」進行比較。如果我不刪除鍵值,值爲「」或null或沒有,那麼remote.json和local.json之間的比較永遠不會相等。
2.是否有更好的方法去解決這個問題?
本地。JSON
{
"Name": "",
"conf": {
"check": "name_prefix_match",
},
"test": {
"Service": "redis",
"Fail": {
"Near": 3
},
"Tags": ""
}
}
BTW您的JSON是無效的:'None'不是'null'和'FALSE'不'FALSE' –
子詞典也應該被過濾? –
請添加已過濾的遠程JSON示例 –