Форум сайта python.su
0
Доброго времени суток, суть проблемы
хочу из кода
{'name_first': ['abc'], 'name_last': ['def'], 'name_info_login': ['aaa1'], 'name_info_descr': ['aaa2'],'email':['abc@def.gh']}
{ 'name': { 'first': 'aaaa', 'last': 'bbbb', 'info': { 'login': 'aaa1', 'desct': 'aaa2' }, 'email': 'abc@def.gh' } }
def parse_post(post):
out = {}
for (key, value) in post.items():
if value[0] == '': continue
if '_' in key:
key = key.split('_')
if not key[0] in out: out[key[0]] = {} #это две строчки нужно както оптимизировать)
out[key[0]][key[1]] = [value[0]] #это две строчки нужно както оптимизировать)
else:
out[key] = [value[0]]
return out
Отредактировано qwexak (Июнь 15, 2013 18:16:12)
Офлайн
88
Лучше переписать
din = {'name_first': ['abc'], 'name_last': ['def'], 'name_info_login': ['aaa1'], 'name_info_descr': ['aaa2'],'email':['abc@def.gh']} def parse_post(post): out = {} for ki, v in post.viewitems(): td, ln = out, ki.split('_') for k in ln[:-1]: td = td.setdefault(k, {}) td[ln[-1]] = v[0] return out print parse_post(din)
Отредактировано Shaman (Июнь 15, 2013 19:11:06)
Офлайн
0
Спасибо
Офлайн
88
Пожалуйста.
Нужно помнить, что все переменные - ссылки. Иногда это помогает, иногда помогает выстрелить в ногу.
Офлайн
0
Недавно начал осваивать после PHP)
так вот там не ссылки
Офлайн