【发布时间】:2019-01-17 08:46:39
【问题描述】:
我在我的服务器上腌制了一个 pandas 数据帧,我通过套接字连接发送它,我可以接收数据,但我似乎无法将数据块一起附加回原始数据帧格式,仅此而已我正在努力实现!我有一种感觉,因为 data = [],它变成了一个列表,但我尝试了一个空的 pd Dataframe 并且没有用,所以我有点迷失了如何附加这些价值观
data = []
FATPACKET = 0
bytelength = self.s.recv(BUFFERSIZE)
length = int(pickle.loads(bytelength))
print(length)
ammo = 0
while True:
print("Getting Data....")
packet = self.s.recv(1100)
FATPACKET = int(sys.getsizeof(packet))
ammo += FATPACKET
print(str(FATPACKET) + ' Got this much of data out of ' +str(length))
print("Getting Data.....")
data.append(packet)
print(ammo)
if not ammo > length:
break
print(data)
unpickled = pickle.loads(data)
self.s.close()
print("Closing Connection!")
print(unpickled)
当我尝试这段代码时,我经常遇到这个
TypeError: 需要一个类似字节的对象,而不是“列表”
或者我遇到了这个
_pickle.UnpicklingError: 无效的加载键,'\x00'
这是我腌制数据框的前几个数字对不起这是我第一次搞乱腌制模块所以我不是很了解
【问题讨论】:
-
pickle.loads需要一个 bytes 对象。但是你有一个字节对象块的列表。先b''.join(data)。
标签: python-3.x pandas sockets pickle