Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:使用pickle需要一个整数(获取类型_io.BufferedWriter)_Python_File_Serialization_Pickle - Fatal编程技术网

Python TypeError:使用pickle需要一个整数(获取类型_io.BufferedWriter)

Python TypeError:使用pickle需要一个整数(获取类型_io.BufferedWriter),python,file,serialization,pickle,Python,File,Serialization,Pickle,守则: import pickle test = 3 >>> with open('test', 'wb') as file: ... pickle.dumps(test, file) 和意外报告的错误 Traceback (most recent call last): File "<stdin>", line 2, in <module> TypeError: an integer is required (got type _io.

守则:

import pickle
test = 3

>>> with open('test', 'wb') as file:
...     pickle.dumps(test, file)
和意外报告的错误

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: an integer is required (got type _io.BufferedWriter)
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
TypeError:需要一个整数(获取类型_io.BufferedWriter)

这是怎么回事?

您使用了错误的函数。以下是文件:

返回对象作为
bytes
对象的pickle表示

转储
将传递的对象转换为
字节
并返回它。当您将文件参数传递给
.dump
预期的pickling协议时,会出现错误,该协议应为整数

您需要使用
pickle.dump
,它实际上会转储到一个文件:

obj
的pickle表示写入打开的文件对象
文件

dumps(obj, protocol=None, *, fix_imports=True)
dump(obj, file, protocol=None, *, fix_imports=True)
with open('test', 'wb') as file:
    pickle.dump(test, file)