Python中与java的ObjectOutputStream和ObjectInputStream相对应的是什么?

3

Python 可能更喜欢使用 JSON 或 XML 而不是拥有自己的二进制格式。 - Peter Lawrey
实际上,我正在尝试在同一台机器的两个进程之间传输对象。这些对象不是纯数据对象。我不确定它是否会起作用。 - user
让我想起了这句话:“XML不是答案,甚至不是问题。引用Jamie Zawinski对于正则表达式的说法:‘当一些人遇到问题时,他们会想,‘我知道,我用XML来解决它。’现在他们有两个问题了。’” http://dirtsimple.org/2004/12/python-is-not-java.html - Rajesh J Advani
2个回答

9
Python中的pickle模块提供了对象序列化和反序列化功能。它并不是特别安全,因此您应该始终验证传入数据,但它应该支持您的需求。 http://docs.python.org/library/pickle.html

3

多进程模块有Pipe()函数,可以在进程之间序列化和传递对象。

http://docs.python.org/library/multiprocessing.html#multiprocessing.Pipe

示例(管道也可以在同一进程中使用)

import multiprocessing

class ObjectToSend:
    def __init__(self,data):
        self.data = data

obj = ObjectToSend(['some data'])

#create 2 read/write ends to a pipe
a, b = multiprocessing.Pipe()
#serialize and send obj across the pipe using send method
a.send(obj) 
#deserialize object at other end of the pipe using recv method
print(b.recv().data)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接