gpt4 book ai didi

python - 是否可以使用 pickle 序列化某些对象并在 Python3 的其他独立模块中使用它?

转载 作者:行者123 更新时间:2023-12-03 11:55:06 24 4
gpt4 key购买 nike

我有 2 个独立的文件:
第一个是客户端.py 在其中我应该使用 创建一些对象记录然后使用 pickle 类对其进行序列化,然后使用套接字将其发送到第二个文件 服务器.py 并且服务器应该将此字节对象反序列化为原始对象

客户端.py:

from pyrecord import Record
import pickle

clientSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientSock.connect(("localhost",48621))
Message1Obj=Record.create_type('Message1Obj','name','address')
message1Data = Message1Obj("KB","aa")
message1Serlization = pickle.dumps(message1Data)
clientSock.send(message1Serlization)

服务器.py
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.bind(("localhost",48621))
sock.listen(5)
con,adr = sock.accept()

message1 = con.recv(8192)
Message1Obj = pickle.loads(message1)

但我在servers.py上得到这个错误:

AttributeError: 无法获取模块“ ”上的属性“Message1Obj”主要 '来自'server.py'

我从以前的答案中了解到,pickle.dump 还保存了对象所在的模块,是否可以在其他模块中加载序列化对象?

最佳答案

我没有使用 pickle 序列化,而是使用 dill 序列化
我的 python 对象并以二进制字符串格式通过服务器发送。

message1Data = {'A message or function/class object'}
import dill
s_data = dill.dumps(message1Data)

通过某个套接字发送到服务器并在那里反序列化
org_data = dill.loads(s_data)

关于python - 是否可以使用 pickle 序列化某些对象并在 Python3 的其他独立模块中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47459662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com