2012-05-22 121 views
3

在java中我可以通過使用Object Output StreamObject Input Stream傳送服務器和客戶端之間的對象。 python中有什麼等價的東西嗎?等同於java ObjectOutputStream和ObjectInputStream的Python?

相關:

+0

的Python可能傾向於使用JSON或XML而不是它自己的二進制格式。 –

+0

其實我試圖在同一臺機器上的兩個進程之間傳輸對象。這些對象不是純粹的數據對象。我不確定它是否會起作用。 – user

+0

讓我想起這句話'XML不是答案。這甚至不是問題。以正則表達式來解釋Jamie Zawinski,「有些人在遇到問題時,想'我知道,我會用XML'。」現在他們有兩個問題。「'http://dirtsimple.org/2004/12/蟒 - 是 - 不java.html –

回答

9

在Python pickle模塊提供對象序列化和反序列化功能。 http://docs.python.org/library/pickle.html

這不是特別安全的,所以你應該總是驗證傳入的數據,但它應該支持您的需求。

3

多處理模塊有處理序列化和進程之間傳遞對象的管道()函數。 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) 
相關問題