Найти - Пользователи
Полная версия: rpyc и словарь
Начало » Python для экспертов » rpyc и словарь
1
alexlp
Добрый день.

У меня 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
с чем такое связано?
Андрей Светлов
Вы возвращаете список словарей.
Для каждого объекта доступны только методы, начинающиеся с ‘exposed_’ и магические (которые __xxx__).
iteritems определенно под эти критерии не попадает.
я рекомендую писать так:
for item in lList:
for k in item:
v = item[k]
some.name = item
some.attr = k
some.value = v
Все равно общение через сеть медленное, и вы практически ничего не проигрываете.
alexlp
Нет это немного не то :(

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

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


[{'s': 869, ‘d’: {'46': 453, ‘99’: 3, ‘56’: 26}}]
alexlp
Все, получилось через pickle
Андрей Светлов
pickle - выход, конечно. Только осторожней с ним. Чревато изумительными эффектами…
sypper-pit
прикольный сервис
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB