Python 2.7 清除Python中的Pickle`memo`

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

我正在使用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 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()