diff --git a/pre_commit_hooks/pretty_format_json.py b/pre_commit_hooks/pretty_format_json.py
index bb7a3d0..9115077 100644
--- a/pre_commit_hooks/pretty_format_json.py
+++ b/pre_commit_hooks/pretty_format_json.py
@@ -2,11 +2,11 @@
 
 import argparse
 import io
+import json
 import sys
 from collections import OrderedDict
 
-import simplejson
-import six
+from six import text_type
 
 
 def _get_pretty_format(contents, indent, ensure_ascii=True, sort_keys=True, top_keys=[]):
@@ -17,18 +17,18 @@
         if sort_keys:
             after = sorted(after, key=lambda x: x[0])
         return OrderedDict(before + after)
-    return six.text_type(simplejson.dumps(
-        simplejson.loads(
-            contents,
-            object_pairs_hook=pairs_first,
-        ),
+    json_pretty = json.dumps(
+        json.loads(contents, object_pairs_hook=pairs_first),
         indent=indent,
         ensure_ascii=ensure_ascii,
-    )) + "\n"  # dumps does not end with a newline
+        separators=(',', ': '),  # Workaround for https://bugs.python.org/issue16333
+    )
+    # Ensure unicode (Py2) and add the newline that dumps does not end with.
+    return text_type(json_pretty) + '\n'
 
 
 def _autofix(filename, new_contents):
-    print("Fixing file {}".format(filename))
+    print('Fixing file {}'.format(filename))
     with io.open(filename, 'w', encoding='UTF-8') as f:
         f.write(new_contents)
 
@@ -110,16 +110,15 @@
             )
 
             if contents != pretty_contents:
-                print("File {} is not pretty-formatted".format(json_file))
+                print('File {} is not pretty-formatted'.format(json_file))
 
                 if args.autofix:
                     _autofix(json_file, pretty_contents)
 
                 status = 1
-
-        except simplejson.JSONDecodeError:
+        except ValueError:
             print(
-                "Input File {} is not a valid JSON, consider using check-json"
+                'Input File {} is not a valid JSON, consider using check-json'
                 .format(json_file),
             )
             return 1
