diff --git a/scripts/autojson.py b/scripts/autojson.py
index 9776196..e4113dc 100755
--- a/scripts/autojson.py
+++ b/scripts/autojson.py
@@ -15,7 +15,7 @@
             files.append(os.path.join(file, f))
 
 for file in files:
-    if not file.endswith('.json'):
+    if not file.endswith(".json"):
         continue
     print("formatting file {}".format(file))
     with open(file) as f:
@@ -27,6 +27,8 @@
     else:
         j["Exposes"] = sorted(j["Exposes"], key=lambda k: k["Type"])
 
-    with open(file, 'w') as f:
-        f.write(json.dumps(j, indent=4, sort_keys=True, separators=(',', ': ')))
-        f.write('\n')
+    with open(file, "w") as f:
+        f.write(
+            json.dumps(j, indent=4, sort_keys=True, separators=(",", ": "))
+        )
+        f.write("\n")
diff --git a/scripts/validate_configs.py b/scripts/validate_configs.py
index 9af771c..7d580c2 100755
--- a/scripts/validate_configs.py
+++ b/scripts/validate_configs.py
@@ -43,7 +43,7 @@
             source_dir = os.path.realpath(__file__).split(os.sep)[:-2]
             schema_file = os.sep + os.path.join(
                 *source_dir, 'schemas', DEFAULT_SCHEMA_FILENAME)
-        except Exception as e:
+        except Exception:
             sys.stderr.write(
                 "Could not guess location of {}\n".format(
                     DEFAULT_SCHEMA_FILENAME))
@@ -53,7 +53,7 @@
     try:
         with open(schema_file) as fd:
             schema = json.load(fd)
-    except FileNotFoundError as e:
+    except FileNotFoundError:
         sys.stderr.write(
             "Could not read schema file '{}'\n".format(schema_file))
         sys.exit(2)
@@ -68,7 +68,7 @@
                 for f in files:
                     if f.endswith('.json'):
                         config_files.append(os.path.join(root, f))
-        except Exception as e:
+        except Exception:
             sys.stderr.write(
                 "Could not guess location of configurations\n")
             sys.exit(2)
@@ -78,7 +78,7 @@
         try:
             with open(config_file) as fd:
                 configs.append(json.load(fd))
-        except FileNotFoundError as e:
+        except FileNotFoundError:
             sys.stderr.write(
                     "Could not parse config file '{}'\n".format(config_file))
             sys.exit(2)
@@ -89,7 +89,7 @@
             with open(args.expected_fails) as fd:
                 for line in fd:
                     expected_fails.append(line.strip())
-        except Exception as e:
+        except Exception:
             sys.stderr.write(
                     "Could not read expected fails file '{}'\n".format(
                         args.expected_fails))
