我有以下三个信息。组名,组类型和组排名。

作为一个简单的例子

“妈妈的猫”,“猫”,“ Top10”

这个例子与我正在做的事情相去甚远,但是您已经有了基本的想法。

组名是可能值的较大选择(例如20k左右),组类型和组排名较小(每个组10个)

试图找到一种更好的方法为这些事物提供简短的唯一标识符,而不是必须使用带有巨大丑陋URL的sha1

还有更好的主意吗?

对所有语言解决方案开放,因此,请在这里钉很多程序员,因为我想不出更好的标签来分配给它。

谢谢。

编辑:我不久前在其他地方找到的一种解决方案,是关于将SHA-1中的最后几个字符转换为十进制值的。不确定此想法的可靠性和碰撞的可能性。

EDIT2:使用mongoDB并将此sha1值与成员一起存储在DB中,以方便当前查询。试图找到在单独的表/集合中创建autoincrement字段的替代解决方案,这意味着在运行更新脚本时会有更多查询。

最佳答案

对于python映射,您可以将(grouptype,groupranking,groupname)用作字典键,或者可以通过使用grouptype-> groupranking-> groupname的键拆分类似于字典的字典来减小字典的大小。

为了生成唯一的URL,grouptype.rank.name或与/相同的问题是作为分隔符-您可以使用有效的url类型函数以%nn格式替换每个无效字符。

您可以使用urllib.quote('/'.join([baseurl, grouptype, groupranking, groupname])生成这样的路径,甚至可以使用baseurl + urllib.urlencode({'grouptype':grouptype,'groupranking':groupranking,'groupname':groupname})-后者将导致典型的查询格式为baseurl?grouptype = Whatever&....

09-19 03:57