code: def _deserialize(self, value, environment=None):
          
  
          if not isinstance(value, MappingABC):
              raise exc.Invalid(self)
  
          # traverse items and match against validated struct
          mapping = self._create_deserialize_type(value, environment)
  
          invalids = []
  
          for name, item in self:
  
              # deserialize each item
              try:
                  mapping[name] = item.deserialize(
                      value.get(name, values.Undefined), environment
                  )
  
              except exc.IgnoreValue:
                  # just ignore this value
                  pass
  
              except exc.Invalid as ex:
                  # append this to the list of invalids, so we can return a complete overview of errors
                  invalids.append(ex)
  
          if invalids:
              # on invalids this item is also ``Invalid``
              raise exc.InvalidChildren(self, invalids)
  
          return mapping
docs: A collection traverses over something to deserialize its value.
  
          :param value: a ``dict`` wich contains mapped values