Python:如何创建嵌套容器的哈希值
[Python 3.1]
我正在尝试为一个可能包含嵌套容器的容器创建一个哈希值,而这个嵌套的层级深度是未知的。在所有层级中,里面只包含一些基本的数据类型。有什么好的方法可以做到这一点呢?
我为什么需要这个:
我在磁盘上用一个pickle对象缓存一些计算的结果。如果函数用不同的参数被调用,我需要让这个缓存的文件失效(这种情况发生得很少,所以我不会在磁盘上保存超过一个文件)。这个哈希值将用来比较参数。
3 个回答
0
我会把它变成一个字符串形式的json格式,然后如果还需要的话,再对这个字符串进行哈希处理。
from simplejson import dumps
def hash_data(data):
return hash(dumps(data))
2
如果所有的容器都是元组,并且里面的所有对象都是可以被哈希的,那么这个主要的容器也应该是可以被哈希的。
1
你可以把参数转换成像JSON这样的格式,然后用这个格式来生成哈希值。