小编典典

Hashing a dictionary?

python

为了进行缓存,我需要根据字典中存在的GET参数生成缓存键。

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


阅读 221

收藏
2021-01-20

共1个答案

小编典典

如果您的字典没有嵌套,则可以使用字典的项目进行冻结设置并使用hash()

hash(frozenset(my_dict.items()))

与生成JSON字符串或字典表示相比,此方法的计算量要少得多。

更新:请参阅下面的注释,为什么这种方法可能无法产生稳定的结果。

2021-01-20