Python 2.7 清除Python中的Pickle`memo`
我正在使用Python 2.7中的套接字编程构建一个Python 2.7 清除Python中的Pickle`memo`,python-2.7,pickle,Python 2.7,Pickle,我正在使用Python 2.7中的套接字编程构建一个服务器客户机模型。 为了发送数据(字符串和文件都是),我使用了Pickle模块 Traceback (most recent call last): File "server.py", line 30, in <module> C1_pick = pickle.loads(data_ciphertext) File "/usr/lib/python2.7/pickle.py", line 1388, in load
服务器客户机模型。
为了发送数据(字符串和文件都是),我使用了Pickle
模块
Traceback (most recent call last):
File "server.py", line 30, in <module>
C1_pick = pickle.loads(data_ciphertext)
File "/usr/lib/python2.7/pickle.py", line 1388, in loads
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 864, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 1162, in load_binget
self.append(self.memo[repr(i)])
KeyError: '101'
显示名称错误
我想知道如何清除Python2.7(精确命令)的Pickle备忘录 我想你可以搜索python文档。我已经看到了,我需要确切的代码行。顺便说一句,我不是在创建实例。我只是在调用函数。什么是data\u ciphertex
source?@pedrobito服务器机器正在发送密文(C1)(现在它在同一台机器上)memo
由Unpickler
使用,而不是由Pickler
使用(与mypickler.memo
相同);这就是为什么会出现名称错误
。由于您使用的是loads()
,因此还使用了Unpickler
的一个临时实例;清除它的memo
不会让你有任何进展。我建议您在转储期间尝试将HIGHEST\u PROTOCOL
设置为较低的值,或者使用pickle tools.dis
查看pickle操作码流的反汇编。
mypickler.memo.clear()