方式一
from django.core import serializers # 导入模块 res = serializers.serialize('json', hosts_list) return HttpResponse(res)
方式二
res = hosts_list.values('hostname', 'ip') import json res = json.dumps(list(res)) # 注意加上list函数 return HttpResponse(res)
但这种方法不能序列化如时间等数据
方式三
自定义序列化
from datetime import datetime from datetime import date import json # Create your tests here. class CustomEncoder(json.JSONEncoder): # 重写自定义序列化的方法 def default(self, field): if isinstance(field, datetime): return field.strftime('%Y-%m-%d %H:%M:%S') elif isinstance(field, date): return field.strftime('%Y-%m-%d') else: return json.JSONEncoder(self, field) d = { 'k1': 'v1', 'k2': 'v2', 'datetime': datetime.now(), } res = json.dumps(d, cls=CustomEncoder) # 把重写的序列化方法传入到参数cls print(res)