def json_default(obj):
    """
    对一些数据类型的 json 序列化，
    默认情况下 json 没有对 datetime 和 Decimal 进行序列化
    如果不指定的话，会抛异常
    :param obj:
    :return:
    """
    if isinstance(obj, datetime):
        return obj.strftime("%Y-%m-%d %H:%M:%S")
    elif isinstance(obj, Decimal):
        return float(obj)
    elif isinstance(obj, uuid.UUID):
        return text_type(obj)
    else:
        try:
            return text_type(obj)
        except:
            pass

    raise TypeError("%r is not JSON serializable" % obj)