栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将UUID 32个字符的十六进制字符串转换为“ YouTube风格”的简短ID,然后返回

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将UUID 32个字符的十六进制字符串转换为“ YouTube风格”的简短ID,然后返回

将基础字节转换为base64值,去除

=
填充和换行符。

您可能希望使用该

base64.urlsafe_b64enpre()
函数来避免使用
/
and
+
_
和和
-
代替),因此所得的字符串可以用作URL路径元素:

>>> import uuid, base64>>> base64.urlsafe_b64enpre(uuid.uuid1().bytes).rstrip(b'=').depre('ascii')'81CMD_bOEeGbPwAjMtYnhg'

相反:

>>> uuid.UUID(bytes=base64.urlsafe_b64depre('81CMD_bOEeGbPwAjMtYnhg' + '=='))UUID('f3508c0f-f6ce-11e1-9b3f-002332d62786')

要将其转换为通用函数:

from base64 import urlsafe_b64depre, urlsafe_b64enprefrom uuid import UUIDdef uuid2slug(uuidstring):    return urlsafe_b64enpre(UUID(uuidstring).bytes).rstrip(b'=').depre('ascii')def slug2uuid(slug):    return str(UUID(bytes=urlsafe_b64depre(slug + '==')))

这为您提供了一种以更紧凑的形式表示16字节UUID的方法。进一步压缩会丢失信息,这意味着您无法再次将其解压缩为完整的UUID。16个字节可以表示的所有值的范围将永远不会适合22个base64字符以内的字符,每三个输入字节需要4个字符,每个字符编码6位信息。

因此,YouTube的唯一字符串不是基于完整的16字节UUID,它们的11个字符ID可能存储在数据库中以便于查找,并且基于较小的值。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633878.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号