diff --git a/scripts/parse_registries.py b/scripts/parse_registries.py
index 155d77c..4195236 100755
--- a/scripts/parse_registries.py
+++ b/scripts/parse_registries.py
@@ -72,7 +72,7 @@
                          'resource_event_message_registry.hpp', 'resource_event'))
 
 # Remove the old files
-for file, json, namespace, url in files:
+for file, json_dict, namespace, url in files:
     try:
         os.remove(file)
     except BaseException:
@@ -82,22 +82,22 @@
         registry.write(REGISTRY_HEADER.format(namespace))
         # Parse the Registry header info
         registry.write("const Header header = {")
-        registry.write("\"{}\",".format(json["@Redfish.Copyright"]))
-        registry.write("\"{}\",".format(json["@odata.type"]))
-        registry.write("\"{}\",".format(json["Id"]))
-        registry.write("\"{}\",".format(json["Name"]))
-        registry.write("\"{}\",".format(json["Language"]))
-        registry.write("\"{}\",".format(json["Description"]))
-        registry.write("\"{}\",".format(json["RegistryPrefix"]))
-        registry.write("\"{}\",".format(json["RegistryVersion"]))
-        registry.write("\"{}\",".format(json["OwningEntity"]))
+        registry.write("\"{}\",".format(json_dict["@Redfish.Copyright"]))
+        registry.write("\"{}\",".format(json_dict["@odata.type"]))
+        registry.write("\"{}\",".format(json_dict["Id"]))
+        registry.write("\"{}\",".format(json_dict["Name"]))
+        registry.write("\"{}\",".format(json_dict["Language"]))
+        registry.write("\"{}\",".format(json_dict["Description"]))
+        registry.write("\"{}\",".format(json_dict["RegistryPrefix"]))
+        registry.write("\"{}\",".format(json_dict["RegistryVersion"]))
+        registry.write("\"{}\",".format(json_dict["OwningEntity"]))
         registry.write("};")
 
         registry.write('constexpr const char * url = "{}";\n\n'.format(url))
         # Parse each Message entry
         registry.write("constexpr std::array<MessageEntry, {}> registry = {{".format(
-            len(json["Messages"])))
-        for messageId, message in sorted(json["Messages"].items()):
+            len(json_dict["Messages"])))
+        for messageId, message in sorted(json_dict["Messages"].items()):
             registry.write("MessageEntry{")
             registry.write("\"{}\",".format(messageId))
             registry.write("{")
