code: def encode_example(self, example_dict):
      
      # Flatten dict matching the tf-example features
      # Use NonMutableDict to ensure there is no collision between features keys
      tfexample_dict = utils.NonMutableDict()
  
      # Iterate over example fields
      for feature_key, (feature, example_value) in utils.zip_dict(
          self._feature_dict, example_dict):
        # Encode the field with the associated encoder
        encoded_feature = feature.encode_example(example_value)
  
        # Singleton case
        if not feature.serialized_keys:
          tfexample_dict[feature_key] = encoded_feature
        # Feature contains sub features
        else:
          _assert_keys_match(encoded_feature.keys(), feature.serialized_keys)
          tfexample_dict.update({
              posixpath.join(feature_key, k): encoded_feature[k]
              for k in feature.serialized_keys
          })
      return tfexample_dict
docs: See base class for details.