0

我需要在 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 格式发送?

4

1 回答 1

1

看着

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

当您想通过网络传输 Python 对象时。

由于 XMLRPC 是基于 XML 的——顾名思义——你不能在没有序列化的情况下通过网络传输 Python 对象。

于 2011-05-20T15:26:49.653 回答