有没有办法测试两个pkl文件是否在python中具有相同的数据?

mls*_*ent 3 python pickle

我需要比较两个对象在python中是否具有相同的数据,但有些类型不支持==.我可以从它们中制作pkl文件然后比较字节数据吗?如果这不起作用,有没有办法比较他们的字节数据(假设我们不知道我们是否正在处理可能包含不同数据类型,列表,矩阵,数据帧等的两个元组)?根据我们是否正在查看包含矩阵,数据帧等的元组,编写具有不同情况的比较函数,看起来非常混乱.

use*_*ica 7

它甚至不能保证两个与==pickle相同的对象相同:

>>> x = (1,)
>>> y = (x, x)
>>> z = ((1,), (1,))
>>> y == z
True
>>> pickle.dumps(y) == pickle.dumps(z)
False
>>> {-1, -2} == {-2, -1}
True
>>> pickle.dumps({-1, -2}) == pickle.dumps({-2, -1})
False
Run Code Online (Sandbox Code Playgroud)

序列化对象以比较其序列化形式并不是可行的通用等式比较.如果你想定义自己的平等概念,写你自己的平等比较函数可能是你最好的选择.