Python Django查询集不可序列化
我使用以下函数进行Python Django查询集不可序列化,python,ajax,django,json,serialization,Python,Ajax,Django,Json,Serialization,我使用以下函数进行Ajax调用: 30 import json 31 32 def get_info(request): 33 run = Run.objects.values('nvp_build', 'lports', 'lswitch_stt') 34 measurements = Measurements.objects.values('maxfield') 35 apistats = APIStats.objects.values('num') 36
Ajax
调用:
30 import json
31
32 def get_info(request):
33 run = Run.objects.values('nvp_build', 'lports', 'lswitch_stt')
34 measurements = Measurements.objects.values('maxfield')
35 apistats = APIStats.objects.values('num')
36 clusterdata = ClusterData.objects.values('memory_usage')
37
38 response_data = json.dumps(run)
39 return HttpResponse(response_data, mimetype='application/json')
因此,当在myviews.py中调用该方法时,我得到:
[{'lports': 4056, 'nvp_build': u'31559', 'lswitch_stt': 2000},
{'lports': 102, 'nvp_build': u'30194', 'lswitch_stt': 40},
{'lports': 4056, 'nvp_build': u'31299', 'lswitch_stt': 2000},
{'lports': 4056, 'nvp_build': u'31350', 'lswitch_stt': 2000},
{'lports': 4056, 'nvp_build': u'31481', 'lswitch_stt': 2000},
{'lports': 4056, 'nvp_build': u'31489', 'lswitch_stt': 2000},
{'lports': 4056, 'nvp_build': u'31494', 'lswitch_stt': 2000},
{'lports': 4056, 'nvp_build': u'31559', 'lswitch_stt': 2000}]
is not JSON serializable
但是,当我手动运行它,并利用上面的数组并执行json.dumps()
时,它会工作。。。
有什么线索吗?使用django的内置:
希望对您有所帮助。TypeError at/graphs/get\u info\uuuu init\uuuuuuuuu()获取了一个意外的关键字参数“mimetype”。。。我不知道为什么会出现这样的错误mimitype
实际上现在(django 1.6)已被弃用。我已将其替换为content\u type
。但是,不知道为什么它不能与mimetype
一起使用。您是否有与我提供的相同的HttpResponse
import语句?mimetype关键字参数有一段时间不推荐使用。使用content\u type代替您是否在代码中使用json.dumps
,并使用json.dumps
手动测试它们是不同的。@RaydelMiranda键入错误。。。它们是一样的
from django.core import serializers
from django.http import HttpResponse
def get_info(request):
data = serializers.serialize('json',
Run.objects.all(),
fields=('nvp_build', 'lports', 'lswitch_stt'))
return HttpResponse(data, content_type='application/json')