diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-07-27 23:38:28 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-07-27 23:38:28 +0000 |
| commit | d57ce3d6a9e4533e1814cbf39194e99b91b30f4e (patch) | |
| tree | de0eb4bb8d53cabecbde40f3fffc2a7c528dc53d /django/utils/simplejson/tool.py | |
| parent | de9e2ae5bb81a4c227e48bc0199fd3734ccba95c (diff) | |
Fixed #7131 -- Updated included simplejson code to match the simplejson-1.9.2
release. This should be fully backwards-compatible for people using the public
interfaces.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8124 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/utils/simplejson/tool.py')
| -rw-r--r-- | django/utils/simplejson/tool.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/django/utils/simplejson/tool.py b/django/utils/simplejson/tool.py new file mode 100644 index 0000000000..d0eb8ad9ee --- /dev/null +++ b/django/utils/simplejson/tool.py @@ -0,0 +1,44 @@ +r""" +Using simplejson from the shell to validate and +pretty-print:: + + $ echo '{"json":"obj"}' | python -msimplejson + { + "json": "obj" + } + $ echo '{ 1.2:3.4}' | python -msimplejson + Expecting property name: line 1 column 2 (char 2) + +Note that the JSON produced by this module's default settings +is a subset of YAML, so it may be used as a serializer for that as well. +""" +import django.utils.simplejson + +# +# Pretty printer: +# curl http://mochikit.com/examples/ajax_tables/domains.json | python -msimplejson.tool +# + +def main(): + import sys + if len(sys.argv) == 1: + infile = sys.stdin + outfile = sys.stdout + elif len(sys.argv) == 2: + infile = open(sys.argv[1], 'rb') + outfile = sys.stdout + elif len(sys.argv) == 3: + infile = open(sys.argv[1], 'rb') + outfile = open(sys.argv[2], 'wb') + else: + raise SystemExit("%s [infile [outfile]]" % (sys.argv[0],)) + try: + obj = simplejson.load(infile) + except ValueError, e: + raise SystemExit(e) + simplejson.dump(obj, outfile, sort_keys=True, indent=4) + outfile.write('\n') + + +if __name__ == '__main__': + main() |
