Login

Convert a ValuesQuerySet to an array of dicts (useful for serializing)

Author:
waitinforatrain
Posted:
June 3, 2011
Language:
Python
Version:
1.3
Score:
1 (after 1 ratings)

Perhaps this is blindingly obvious but I spent a while trying to get this, before figuring out that when a each item of an iterated ValuesQuerySet is a dict.

Useful for serialising to JSON or XML etc.

1
2
3
4
5
6
7
def ValuesQuerySetToDict(vqs):
    return [item for item in vqs]

# Usage
data=MyModel.objects.values('id','title','...','...')
data_dict = ValuesQuerySetToDict(data)
data_json = simplejson.dumps(data_dict)

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
  3. Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
  5. Help text hyperlinks by sa2812 1 year, 7 months ago

Comments

siloraptor (on June 3, 2011):

Django provides native means of serialising it's models:

from django.core import serializers data = serializers.serialize("xml", SomeModel.objects.all())

https://docs.djangoproject.com/en/dev/topics/serialization/

#

waitinforatrain (on June 3, 2011):

@siloraptor That won't let you serialise a ValuesQuerySet result

#

rix (on June 3, 2011):

Why not converting to a list?

list(MyModel.objects.values('id','title','...','...'))

#

waitinforatrain (on June 5, 2011):

Didn't know you could do that. Dicts can be useful if you want to create more complex nested JSON.

#

Please login first before commenting.