Mercurial > hg > config
comparison python/jsonex.py @ 692:80c47cc35f37
to method
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Mon, 02 Jun 2014 13:49:46 -0700 |
| parents | 6f48a3e5ab41 |
| children | 0fa456446fea |
comparison
equal
deleted
inserted
replaced
| 691:d586ea538d36 | 692:80c47cc35f37 |
|---|---|
| 7 import argparse | 7 import argparse |
| 8 import json | 8 import json |
| 9 import os | 9 import os |
| 10 import sys | 10 import sys |
| 11 import urllib2 | 11 import urllib2 |
| 12 | |
| 13 def dereference(obj, key): | |
| 14 if obj is None: | |
| 15 return None | |
| 16 if isinstance(obj, dict): | |
| 17 return obj[key] | |
| 18 return obj[int(key)] | |
| 12 | 19 |
| 13 def main(args=sys.argv[1:]): | 20 def main(args=sys.argv[1:]): |
| 14 | 21 |
| 15 # command line | 22 # command line |
| 16 parser = argparse.ArgumentParser(description='__doc__') | 23 parser = argparse.ArgumentParser(description='__doc__') |
| 31 obj = json.load(data) | 38 obj = json.load(data) |
| 32 | 39 |
| 33 if options.object: | 40 if options.object: |
| 34 for o in options.object: | 41 for o in options.object: |
| 35 base = obj | 42 base = obj |
| 36 for part in o.strip().split('.'): # split into objects | 43 for key in o.strip().split('.'): # split into objects |
| 37 raise NotImplementedError('TODO') | 44 base = dereference(base, key) |
| 45 if base is None: | |
| 46 break | |
| 47 print (json.dumps(base)) | |
| 38 else: | 48 else: |
| 39 print json.dumps(obj, indent=2, sort_keys=True) | 49 print (json.dumps(obj, indent=2, sort_keys=True)) |
| 40 | 50 |
| 41 if __name__ == '__main__': | 51 if __name__ == '__main__': |
| 42 main() | 52 main() |
