序列化

序列化

序列化

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

原文地址:https://www.cnblogs.com/g15009428458/p/12346146.html