#!/usr/bin/python import json import sys import yaml fn='' if len(sys.argv) > 1: fn = sys.argv[1] if len(fn) > 0: infile = open(fn, 'r') else: infile = sys.stdin raw=infile.read() #print raw instruct = json.loads(raw) blacklist = ['typeID', 'vTypeID', 'varsUsedLater', 'varsValid'] def Filter(instruct, layer): if type(instruct) == dict: out = {} #print "<- %s %d\n" % (instruct, layer) for oneKey in sorted(instruct): #.keys(): if not oneKey in blacklist: if type(instruct[oneKey]) == dict: out[oneKey] = Filter(instruct[oneKey], layer + 1) elif type(instruct[oneKey]) == list: out[oneKey] = Filter(instruct[oneKey], layer + 1) else: out[oneKey] = instruct[oneKey] #else: #print "BLACKLIST %d\n" % (layer) #print "-> %s %d\n" % (out, layer) return out elif type(instruct) == list: out = [] for item in instruct: if type(item) == dict: out.append(Filter(item, layer + 1)) elif type(item) == list: out.append(Filter(item, layer + 1)) else: out.append(item) return out else: return instruct filtered = Filter(instruct, 0) #print "---------" #print filtered # print json.dumps(instruct, indent=4, sort_keys=True) print yaml.safe_dump(filtered, default_flow_style=False)