Как преобразовать MultiDict во вложенный словарь

Я хотел бы преобразовать POST из Webob MultiDict во вложенный словарь. Например.

Итак, из POST:

'name=Kyle&phone.number=1234&phone.type=home&phone.number=5678&phone.type=work'

в multidict;

[('name', 'Kyle'), ('phone.number', '1234'), ('phone.type', 'home'), ('phone.number', '5678'), ('phone.type', 'work')]

во вложенный словарь

{'name': 'Kyle',
 'phone': [
  {
    'number': '12345',
    'type': 'home',
  },{
    'number': '5678',
    'type': 'work',
  },

Есть идеи?

EDIT

В итоге я извлек метод variable_decode из пакет formencode , опубликованный Уиллом. Единственное изменение, которое потребовалось, - это сделать списки явными, например.

'name=Kyle&phone-1.number=1234&phone-1.type=home&phone-2.number=5678&phone-2.type=work'

Что лучше по многим причинам.

10
задан Kyle Finley 30 January 2012 в 23:14
поделиться