【发布时间】:2011-05-20 15:20:56
【问题描述】:
我需要在 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 只支持基本数据类型。我不能使用字典,因为我需要在我的客户端同行中有引用。当我使用带有引用的字典时,它会给出与上述相同的错误。 我不能使用pickle,它需要独立于语言。
您对通过 XML-RPC 本地发送对象有什么建议吗?也许如何创建我自己的数据类型以 xml 格式发送?
【问题讨论】:
标签: python xml-rpc composite recursive-datastructures xmlrpclib