0

我需要通過python中的XML-RPC發送一個對象。我的對象由複合數據類型的填充的樹結構:通過python中的XML-RPC發送對象(遞歸數據結構)

class Node(object): 
'''Composite data type ''' 
def __init__(self, pData, pParent=None): 
    self.mData = pData 
    self.mParent = pParent 
    self.mChildren = [] 

self.mParent是參考其父節點。所以我有一個遞歸數據結構來創建這個結構。當我嘗試這種數據類型直接XML-RPC發送,它給這個錯誤:

xmlrpclib.Fault: <Fault 1: "<type 'exceptions.TypeError'>:cannot marshal recursive dictionaries"> 

我覺得這個異常升高,由於其複雜的結構。因爲xml-rpc僅支持基本數據類型。我無法使用字典,因爲我需要在我的客戶端中有引用。當我使用引用的字典時,它給出了上述相同的錯誤。 我不能使用泡菜,它需要與語言無關。

您是否有任何建議通過本地方式通過XML-RPC發送對象?也許如何創建我自己的數據類型以XML格式發送?

回答

1

http://www.xs4all.nl/~irmen/pyro3/

當你想通過電匯Python對象

由於XMLRPC基於XML - 顧名思義 - 您不能在沒有序列化的情況下通過導線傳輸Python對象。

+0

感謝您的回覆。正如你所說的,它在發送對象之前需要在合適的XML表示中被序列化。例如,當我發送一個字符串變量時,XML-RPC自動生成變量。那麼我是否有可能以xml格式序列化我的對象(沒有pickle,更改xmlrpclib中的代碼)並將它發送給另一個對等體? – zekifh 2011-05-21 17:00:56