отправка объекта (рекурсивные структуры данных) с помощью XML-RPC в python - PullRequest
0 голосов
/ 20 мая 2011

Мне нужно отправить объект через XML-RPC в Python. Мой объект состоит из составного типа данных для заполнения древовидной структуры:

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 Ответ

1 голос
/ 20 мая 2011

Посмотрите на

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

, если вы хотите передавать объекты Python по проводам.

Поскольку XMLRPC основан на XML, как следует из названия, вы не можете передавать объекты Python по проводам без сериализации.

...