pre-commit-hooks: python3.6+
diff --git a/pre_commit_hooks/check_json.py b/pre_commit_hooks/check_json.py
index f26e0a5..25dbfd9 100644
--- a/pre_commit_hooks/check_json.py
+++ b/pre_commit_hooks/check_json.py
@@ -1,27 +1,25 @@
-from __future__ import print_function
-
 import argparse
-import io
 import json
-import sys
 from typing import Optional
 from typing import Sequence
 
 
-def main(argv=None):  # type: (Optional[Sequence[str]]) -> int
+def main(argv: Optional[Sequence[str]] = None) -> int:
     parser = argparse.ArgumentParser()
     parser.add_argument('filenames', nargs='*', help='Filenames to check.')
     args = parser.parse_args(argv)
 
     retval = 0
     for filename in args.filenames:
-        try:
-            json.load(io.open(filename, encoding='UTF-8'))
-        except (ValueError, UnicodeDecodeError) as exc:
-            print('{}: Failed to json decode ({})'.format(filename, exc))
-            retval = 1
+        with open(filename, 'rb') as f:
+            try:
+                json.load(f)
+            # TODO: need UnicodeDecodeError?
+            except (ValueError, UnicodeDecodeError) as exc:
+                print(f'{filename}: Failed to json decode ({exc})')
+                retval = 1
     return retval
 
 
 if __name__ == '__main__':
-    sys.exit(main())
+    exit(main())