diff --git a/Lib/os.py b/Lib/os.py
index 5b8aa25..d72f32b 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -387,22 +387,32 @@
         self.data = data = {}
         for key, value in environ.items():
             data[keymap(key)] = str(value)
+
     def __getitem__(self, key):
         return self.data[self.keymap(key)]
+
     def __setitem__(self, key, value):
         value = str(value)
         self.putenv(key, value)
         self.data[self.keymap(key)] = value
+
     def __delitem__(self, key):
         self.unsetenv(key)
         del self.data[self.keymap(key)]
+
     def __iter__(self):
         for key in self.data:
             yield key
+
     def __len__(self):
         return len(self.data)
+
+    def __repr__(self):
+        return 'environ({!r})'.format(self.data)
+
     def copy(self):
         return dict(self)
+
     def setdefault(self, key, value):
         if key not in self:
             self[key] = value
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 907f943..d7f763f 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -400,6 +400,14 @@
         for key, value in self._reference().items():
             self.assertEqual(os.environ.get(key), value)
 
+    # Issue 7310
+    def test___repr__(self):
+        """Check that the repr() of os.environ looks like environ({...})."""
+        env = os.environ
+        self.assertTrue(isinstance(env.data, dict))
+        self.assertEqual(repr(env), 'environ({!r})'.format(env.data))
+
+
 class WalkTests(unittest.TestCase):
     """Tests for os.walk()."""
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 835bb92..9f1b145 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -79,6 +79,8 @@
 Library
 -------
 
+- Issue #7310: fix the __repr__ of os.environ to show the environment variables.
+
 - Issue #7970: email.Generator.flatten now correctly flattens message/rfc822
   messages parsed by email.Parser.HeaderParser.
 
