Уведомления

Группа в Telegram: @pythonsu

#1 Май 20, 2010 09:24:28

alexlp
От:
Зарегистрирован: 2009-11-12
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

rpyc и словарь

Добрый день.

У меня rpyc-сервер который возвращает вот такие данные.

def exposed_some():
return [{'s': 1446, 'd': {'121': 2216}}, {'s': 869, 'd': {'46': 453, '99': 3, '56': 26}}, {'s': 966, 'd': {'199': 21, '53': 955}}]
Далее на клиенте я пытаюсь их разобрать путем:
lList = conn.root.some()

for item in lList:
for k,v in item.iteritems()
some.name = item
some.attr = k
some.value = v
Возникает ошибка

AttributeError: cannot access 'iteritems'
причем если разобрать в python idle такой словарь ошибок не возникает.

type(item) возвращает

TypeError: 'NetrefMetaclass' object is not iterable
с чем такое связано?



Офлайн

#2 Май 20, 2010 13:57:17

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

rpyc и словарь

Вы возвращаете список словарей.
Для каждого объекта доступны только методы, начинающиеся с ‘exposed_’ и магические (которые __xxx__).
iteritems определенно под эти критерии не попадает.
я рекомендую писать так:

for item in lList:
for k in item:
v = item[k]
some.name = item
some.attr = k
some.value = v
Все равно общение через сеть медленное, и вы практически ничего не проигрываете.



Офлайн

#3 Май 21, 2010 09:21:55

alexlp
От:
Зарегистрирован: 2009-11-12
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

rpyc и словарь

Нет это немного не то :(

Возвращается список словарей из вида {'s': …, ‘d’: …}, однако у ‘d’ значением является тоже словарь, и больше интересует именно он

v = item для такого перебора получается не подходит


[{'s': 869, ‘d’: {'46': 453, ‘99’: 3, ‘56’: 26}}]



Офлайн

#4 Май 21, 2010 09:27:49

alexlp
От:
Зарегистрирован: 2009-11-12
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

rpyc и словарь

Все, получилось через pickle



Офлайн

#5 Май 22, 2010 02:43:08

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

rpyc и словарь

pickle - выход, конечно. Только осторожней с ним. Чревато изумительными эффектами…



Офлайн

#6 Май 24, 2010 16:06:07

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

rpyc и словарь

прикольный сервис

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version