小编典典

散列字典?

all

出于缓存目的,我需要从字典中存在的 GET 参数生成缓存键。

目前我正在使用sha1(repr(sorted(my_dict.items())))sha1()是一种在内部使用hashlib的便捷方法)但我很好奇是否有更好的方法。


阅读 80

收藏
2022-06-28

共1个答案

小编典典

如果您的字典没有嵌套,您可以使用字典的项目制作一个 freezeset
并使用hash()

hash(frozenset(my_dict.items()))

这比生成 JSON 字符串或字典表示的计算量要小得多。

更新:请参阅下面的评论,为什么这种方法可能不会产生稳定的结果。

2022-06-28