PageRenderTime 605ms CodeModel.GetById 212ms app.highlight 13ms RepoModel.GetById 191ms app.codeStats 0ms

/Lib/json/tool.py

http://unladen-swallow.googlecode.com/
Python | 37 lines | 37 code | 0 blank | 0 comment | 0 complexity | 7452d9e1f25ae5ff7dddac85808b83b1 MD5 | raw file
 1r"""Command-line tool to validate and pretty-print JSON
 2
 3Usage::
 4
 5    $ echo '{"json":"obj"}' | python -mjson.tool
 6    {
 7        "json": "obj"
 8    }
 9    $ echo '{ 1.2:3.4}' | python -mjson.tool
10    Expecting property name: line 1 column 2 (char 2)
11
12"""
13import sys
14import json
15
16def 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("{0} [infile [outfile]]".format(sys.argv[0]))
28    try:
29        obj = json.load(infile)
30    except ValueError, e:
31        raise SystemExit(e)
32    json.dump(obj, outfile, sort_keys=True, indent=4)
33    outfile.write('\n')
34
35
36if __name__ == '__main__':
37    main()