every chardet package maps to requests.packages.chardet.* package respectively
diff --git a/src/requests/packages.py b/src/requests/packages.py
index 77c45c9e90..a9e5ae087d 100644
--- a/src/requests/packages.py
+++ b/src/requests/packages.py
@@ -23,6 +23,8 @@
 target = chardet.__name__
 for mod in list(sys.modules):
     if mod == target or mod.startswith(f"{target}."):
-        target = target.replace(target, "chardet")
-        sys.modules[f"requests.packages.{target}"] = sys.modules[mod]
+        imported_mod = sys.modules[mod]
+        sys.modules[f"requests.packages.{mod}"] = imported_mod
+        mod = mod.replace(target, "chardet")
+        sys.modules[f"requests.packages.{mod}"] = imported_mod
 # Kinda cool, though, right?

Added a fix for the issue mentioned here - https://github.com/psf/requests/issues/6223

Checked in the code, only one package of chardet was being mapped to requests.packages.chardet despite the for loop. 

Have added the fix so each chardet package maps to it's corresponding requests.packages.chardet.* respectively.