如何在python3中使用pickle序列化对象

时间:2018-06-12 15:51:44

标签: python-3.x object serialization

我读过“如何像计算机科学家一样思考。用Python学习。”书。所以我通常没有困难解释从python2到python3的例子,但在第11章文件&我遇到此代码段的例外

>>> import pickle
>>> f = open("test.pck", "w")
>>> pickle.dump(12.3, f)
>>> pickle.dump([1,2,3], f)
>>> f.close() 

当我使用Python 3.5.2评估它时会出现此错误

Traceback (most recent call last):  File "/(myDirs)/files.py", line 3, in <module>
    pickle.dump(3.14, f)
TypeError: write() argument must be str, not bytes

我不是一个好的文档读者,所以如果你能帮助我解决这个谜题,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您需要以二进制模式打开文件。

第2行:

f = open("test.pck", "wb")