泡菜怎么知道选哪个?

Vac*_*lsk 2 python pickle

我的泡菜功能正常工作

    with open(self._prepared_data_location_scalar, 'wb') as output:
        # company1 = Company('banana', 40)
        pickle.dump(X_scaler, output, pickle.HIGHEST_PROTOCOL)
        pickle.dump(Y_scaler, output, pickle.HIGHEST_PROTOCOL)


    with open(self._prepared_data_location_scalar, 'rb') as input_f:
        X_scaler = pickle.load(input_f)
        Y_scaler = pickle.load(input_f)
Run Code Online (Sandbox Code Playgroud)

但是,我很好奇腌菜怎么知道加载?这是否意味着一切都必须在同一序列中?

wim*_*wim 6

你有什么好.这是泡菜的记录特征:

可以对同一个Pickler实例的dump()方法进行多次调用.然后必须将它们匹配到相应Unpickler实例的load()方法的相同调用次数.

这里没有魔力,pickle是一种非常简单的基于堆栈的语言,它将python对象序列化为字节串.pickle格式知道对象边界:按设计,pickle.dumps('x') + pickle.dumps('y')字节串不一样pickle.dumps('xy').

如果您有兴趣了解有关实现的一些背景知识,那么本文很容易阅读,以便了解python pickler.