import simplejson as json
results = Content.objects.filter(blah)
theresult_json = json.dumps(results)
这不起作用!!
答案 0 :(得分:6)
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'))
答案 1 :(得分:1)
results
是一个python对象。 simplejson.dumps
仅适用于python dict的/ list's。
您需要先将结果对象转换为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)
答案 2 :(得分:0)
根据您要执行的操作,您可能还需要查看Piston。它有特殊的Emitter类,用于将对象转储为JSON格式,XML格式等...如果您正在构建AJAX或API端点,活塞框架非常有用。