docs: def _decode(self, value):
          """Decode bytes to UTF-8 strings as a singe value, list, or dict.
  
          :param mixed value: The value to decode
          :rtype: mixed
  
          """
          if isinstance(value, list):
              return [self._decode(v) for v in value]
          elif isinstance(value, dict):
              return {self._decode(k): self._decode(v)
                      for k, v in value.items()}
          elif isinstance(value, bytes):
              return value.decode('utf-8')
          return value