github.com/olivere/camlistore@v0.0.0-20140121221811-1b7ac2da0199/lib/python/simplejson/tool.py (about)

     1  r"""Command-line tool to validate and pretty-print JSON
     2  
     3  Usage::
     4  
     5      $ echo '{"json":"obj"}' | python -m simplejson.tool
     6      {
     7          "json": "obj"
     8      }
     9      $ echo '{ 1.2:3.4}' | python -m simplejson.tool
    10      Expecting property name: line 1 column 2 (char 2)
    11  
    12  """
    13  import sys
    14  import simplejson as 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      try:
    29          obj = json.load(infile,
    30                          object_pairs_hook=json.OrderedDict,
    31                          use_decimal=True)
    32      except ValueError, e:
    33          raise SystemExit(e)
    34      json.dump(obj, outfile, sort_keys=True, indent='    ', use_decimal=True)
    35      outfile.write('\n')
    36  
    37  
    38  if __name__ == '__main__':
    39      main()