4
我有一个简单的例子来送字典通过XML-RPC:XML-RPC - 不能元帅递归字典
class CTest(object):
def __init__(self):
self.node1 = {'data':'zek', 'parent':{}, 'children':[]}
self.node2 = {'data':'bill', 'parent':{}, 'children':[]}
self.node1['children'].append(self.node2)
self.node2['parent'] = self.node1
def getNode(self):
return self.node1
我有两个字典:节点2是节点1的儿童,并在同一时间节点2将node1作为父变量的引用。 所以它是一个递归字典。当我尝试通过XML-RPC发送节点1,我得到这个异常:
#Command to execute xml-rpc dump method for serialization
test = CTest()
xmlrpclib.dumps((test,), 'Node Object')
#Exception
raise TypeError, "cannot marshal recursive dictionaries"
是否有可能通过XML-RPC发送节点1(不改变字典结构)?
谢谢。
感谢。它与cPickle完美配合。但它需要与语言无关。 因此,当我在一个对等体上腌制字典时,我还需要在其他对等体中使用python来取消它。 因为我以xml格式发送字典,所以通常可以在另一个同位体(C,C++,java)中使用另一种编程语言。 这就是为什么我不能使用pickle。 Pyro有它自己的网络通信代码,它不使用XML-RPC。我需要使用XML-RPC。 那么你知道任何其他的方法来发送这本字典通过XML-RPC没有泡菜吗? – zekifh 2011-05-24 13:29:07