def decode_embedded_strs(src):
 if (not six.PY3):
  return src
 if isinstance(src, dict):
  return _decode_embedded_dict(src)
 elif isinstance(src, list):
  return _decode_embedded_list(src)
 elif isinstance(src, bytes):
  try:
   return src.decode()
  except UnicodeError:
   return src
 else:
  return src

def decode_embedded_strs ( src ) : if ( not six . PY3 ) : return src if isinstance ( src , dict ) : return _decode_embedded_dict ( src ) elif isinstance ( src , list ) : return _decode_embedded_list ( src ) elif isinstance ( src , bytes ) : try : return src . decode ( ) except UnicodeError : return src else : return src
convert enbedded bytes to strings if possible .