zoukankan      html  css  js  c++  java
  • 序列化

    序列化

    序列化

    api接口开发,最核心最常见的一个过程就是序列化,所谓序列化就是把数据转换格式,序列化可以分为两个阶段:

    序列化:把我们识别的数据转换成指定的格式提供给别人。

    例如:把我们在django中获取的数据默认是模型对象,但是模型对象数据无法直接提供给前端或别的平台使用,所以我们需要把数据进行序列化,编程字符串或者json数据,提供给别人

    反序列化:把别人提供的数据转换或者还原成我们需要的格式。

    python中的序列化

    1. json
    2. pickle
    #dump    load  用于文件写入存储
    #dumps   loads 用于网络传输(网络编程)
    

    使用

    import json

    lst = [1,2,3,4,5]
    a = json.dumps(lst) #转换为可传输的格式
    print(a,type(a))

    利用json转换原来格式

    s1 = json.loads(a)
    print(s1[0],type(s1))

    扩展序列化时间

    序列化时间
    import json
    from datetime import datetime
    from datetime import date
    

    对含有日期格式数据的json数据进行转换

    class JsonCustomEncoder(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.default(self,field)

    d1 = datetime.now()

    dd = json.dumps(d1,cls=JsonCustomEncoder)
    print(dd)

    前端中的序列化

    JSON.stringify      //序列化
    JSON.parse          //反序列化
    
    var a = [1,2,3,4,5];
    

    var s = JSON.stringify(a); //将数组a序列化为可传输格式

    var s1 = JSON.parse(s); //再将原来可传输格式转化为原来格式

    Django提供的序列化工具

    from django.http import HttpResponse
    

    此模块序列化传输的数据,前端无需再次反序列化,直接可以使用

    序列化参考博客:https://www.cnblogs.com/LiuZhiHao/p/10271449.html

  • 相关阅读:
    BZOJ4346 : [POI2016]Nadajniki
    BZOJ4345 : [POI2016]Korale
    BZOJ4134 : ljw和lzr的hack比赛
    BZOJ4342 : CF348 Pilgrims
    BZOJ2310 : ParkII
    BZOJ3322 : [Scoi2013]摩托车交易
    BZOJ1444 : [Jsoi2009]有趣的游戏
    Xcode8中处理打印日志的配置
    iOS开发之记录用户登录状态
    热修复
  • 原文地址:https://www.cnblogs.com/g15009428458/p/12346146.html
Copyright © 2011-2022 走看看