首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML-RPC -无法封送递归字典

XML-RPC -无法封送递归字典
EN

Stack Overflow用户
提问于 2011-05-24 00:13:30
回答 1查看 2.8K关注 0票数 5

我有一个通过xml-rpc发送字典的简单示例:

代码语言:javascript
复制
 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

我有两个字典: node2是node1的子级,同时node2将node1引用作为父级变量。所以它是一个递归字典。当我尝试通过XML-RPC发送node1时,我得到了这个异常:

代码语言:javascript
复制
#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发送node1 (无需更改字典结构)?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-05-24 00:22:57

使用Python的“pickle”模块自己序列化和反序列化“test”。

代码语言:javascript
复制
cPickle.dumps(test)

是有效的。在你使用的电线的另一端

代码语言:javascript
复制
cPickle.loads(received_test_pickle)

在XMLRPC调用之前/之后,可能需要对pickle进行base-64编码/解码。

但也要研究一下PyRo

http://pyro.sourceforge.net/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6099947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档