import simplejson as json
results = Content.objects.filter(blah)
theresult_json = json.dumps(results)
Это не работает!Как я могу быстро сбросить набор результатов запроса в JSON?
import simplejson as json
results = Content.objects.filter(blah)
theresult_json = json.dumps(results)
Это не работает!Как я могу быстро сбросить набор результатов запроса в JSON?
Как насчет http://docs.djangoproject.com/en/dev/topics/serialization/
?
from django.core import serializers
data = serializers.serialize('json', SomeModel.objects.all())
# it's pretty useful and quick.
data = serializers.serialize('json', SomeModel.objects.all(), fields=('foo','bar'))
В зависимости от того, что вы пытаетесь сделать, вы также можете проверить Piston. Он имеет специальные классы Emitter для сброса ваших объектов в формат JSON, формат XML и т. Д. ... если вы создаете конечные точки AJAX или API, каркас поршня невероятно полезен.
results
- объект python. simplejson.dumps
работает только с python dict/list.
Сначала вам нужно преобразовать ваш объект результатов в dict. Либо вы делаете это вручную, как это:
l = []
for result in results:
d = {
'attr1': result.attr1,
'attr2': result.attr2,
...
}
l.append(d)
theresult_json = simplejson.dumps(l)
или динамически с объектами __dict__
методы удаления не являющийся JSON сериализуемых атрибутов из него впоследствии:
l = []
for result in results:
d = result.__dict__
# remove attributes from dict which are not JSON-serializable with del d[key]
l.append(d)
theresult_json = simplejson.dumps(l)