Ivan P Ivan P - 5 months ago 15
Python Question

In Flask convert form POST object into a representation suitable for mongodb

I am using Flask and MongoDB. I am trying to convert the content of request.form into something suitable for saving via PyMongo. It seems like something that should come up often enough to have a ready-made solution.

So what Flask give me is something like:

ImmutableMultiDict([('default', u''), ('required': u'on'), ('name', u'short_text'), ('name', u'another'), ('submit', u'Submit')])


And what I am looking to get is something close to this:

{
'default': '',
'name': ['short_text', 'another'],
'required': true
}

Answer
>>> from werkzeug.datastructures import ImmutableMultiDict
>>> imd = ImmutableMultiDict([('default', u''), ('required', u'on'), ('name',                              u'short_text'), ('name', u'another'), ('submit', u'Submit')])
>>> dict(imd)
>>> {'default': [''], 'submit': ['Submit'], 'required': ['on'], 'name': ['short_text', 'another']}