home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Bureautique / OpenOffice / Apache_OpenOffice_4.1.1_Win_x86_install_fr.exe / openoffice1.cab / tool.py < prev    next >
Text File  |  2014-07-29  |  997b  |  41 lines

  1. r"""Command-line tool to validate and pretty-print JSON
  2.  
  3. Usage::
  4.  
  5.     $ echo '{"json":"obj"}' | python -m json.tool
  6.     {
  7.         "json": "obj"
  8.     }
  9.     $ echo '{ 1.2:3.4}' | python -m json.tool
  10.     Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
  11.  
  12. """
  13. import sys
  14. import json
  15.  
  16. def main():
  17.     if len(sys.argv) == 1:
  18.         infile = sys.stdin
  19.         outfile = sys.stdout
  20.     elif len(sys.argv) == 2:
  21.         infile = open(sys.argv[1], 'rb')
  22.         outfile = sys.stdout
  23.     elif len(sys.argv) == 3:
  24.         infile = open(sys.argv[1], 'rb')
  25.         outfile = open(sys.argv[2], 'wb')
  26.     else:
  27.         raise SystemExit(sys.argv[0] + " [infile [outfile]]")
  28.     with infile:
  29.         try:
  30.             obj = json.load(infile)
  31.         except ValueError, e:
  32.             raise SystemExit(e)
  33.     with outfile:
  34.         json.dump(obj, outfile, sort_keys=True,
  35.                   indent=4, separators=(',', ': '))
  36.         outfile.write('\n')
  37.  
  38.  
  39. if __name__ == '__main__':
  40.     main()
  41.