1
0
Fork 0
arangodb/scripts/jsonQueryToYaml

60 lines
1.5 KiB
Python
Executable File

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