Python pickle索引超出范围

Python pickle索引超出范围,python,windows,macos,sockets,pickle,Python,Windows,Macos,Sockets,Pickle,当我尝试在windows机器上运行py文件时,我遇到了以下错误,在Mac上一切正常,但我无法让这两台机器相互通信。我是否必须在ascii中“转储”;如果是,我该怎么做?有什么建议吗?谢谢 Traceback (most recent call last): File "C:\Users\Keith\Desktop\rcserver\tcpserver_simpleReceive.py", line 23, in <module> new_data = pickle.loads(dat

当我尝试在windows机器上运行py文件时,我遇到了以下错误,在Mac上一切正常,但我无法让这两台机器相互通信。我是否必须在ascii中“转储”;如果是,我该怎么做?有什么建议吗?谢谢

Traceback (most recent call last):
File "C:\Users\Keith\Desktop\rcserver\tcpserver_simpleReceive.py", line 23, in <module>
new_data = pickle.loads(data)
File "C:\Python27\lib\pickle.py", line 1382, in loads
return Unpickler(file).load()
File "C:\Python27\lib\pickle.py", line 858, in load
dispatch[key](self)
File "C:\Python27\lib\pickle.py", line 1165, in load_put
self.memo[self.readline()[:-1]] = self.stack[-1]
IndexError: list index out of range
这是负载:

 data = client_socket.recv(1024)
new_data = pickle.loads(data)

为什么在列表
堆栈[-1]
中使用负索引?是否以二进制模式读取或写入文件。新线可能是这里的一个问题。告诉我们您是如何转储和加载文件的。@ATOzTOA:为什么不呢?另外,不是“他”,是
pickle
模块在做这件事。@TimPietzcker对我来说是新的:)@ATOzTOA:从序列的长度中减去负索引;他们从最后算起<代码>序号[-1]是最后一项,
序号[-2]
是第二项。它们也可以在片中使用:
seq[:-1]
表示“除最后一个条目外的所有内容”。
 data = client_socket.recv(1024)
new_data = pickle.loads(data)