问题遇到的现象和发生背景
最近学习Python时看见序列化的操作,许多人用pickle库中的dumps函数解决了这个问题。dumps函数的定义是这样的:
dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None)
有人这样使用的这个函数:
pickle.dumps(object,file)
然后目录下就创建了一个包含了一个对象转化为Bytes类型的数据
问题相关代码
我自己用cmd使用了一下:
Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pickle import dumps
>>> class a:
... pass
...
>>> c = open('c.txt',"wb")
>>> dumps(a,c)
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: '_io.BufferedWriter' object cannot be interpreted as an integer
运行结果及报错内容
但是却报错说TypeError: '_io.BufferedWriter' object cannot be interpreted as an integer,翻译成中文就是“对象不能解释为整数”
我的解答思路和尝试过的方法
我也尝试过将类实例化后再进行序列化,依然是这样的报错内容。是什么原因啊?