zyf 02 批量处理自定义对象的序列化操作 - nuanxin1111/react GitHub Wiki

#案例 在做问医生后台模块时,因为前端Js要对传递过来的医生问答列表进行操作,后台要对抽象类列表进行序列化操作,抽象类如果包含datetime类型的字段,序列化是无法成功的。要先对datetime进行转化,因为是在列表中如果再拆分列表,效率会降低。批量序列化这类抽象化步骤如下:

  • 处理时间模块(timeEncoder.py)
#!/usr/bin/env python
#coding:utf-8
import json
from datetime import datetime
from datetime import time

class CJsonEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, datetime):
            return obj.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(obj, date):
            return obj.strftime('%Y-%m-%d')
        else:
            return json.JSONEncoder.default(self, obj)

链接:http://blog.csdn.net/joeblackzqq/article/details/9199549

  • 序列化列表(业务层)
    try:
        faq_list = patient.fetch_doctor_question_list(doctor_id=arg_doctorid)
    except:
        logger.info('patient.fetch_doctor_question_list() error at \
                patient.views.mydoctor_faq')
        return HttpResponse('无法得到医生问答列表')
    context_dict['faq_list'] = json.dumps(faq_list, cls=CJsonEncoder)
  • 前端js使用
   var faq_list = {{ faq_list | safe }};

原因:http://www.cnblogs.com/cyiner/archive/2011/11/10/2244838.html