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示例 –