将列表序列化保存到cookie中并通过js反序列化得到数组解决方案
需求点
将数据放入列表,进行序列化后存放cookie,前端通过js调取cookie可反序列化成数组
问题
python的序列化主要有json,pickel,尝试用json.loads或pickle.loads序列化成功后,保存到cookie,前端js通过JSON.parse无法解析成数组并报错
原因
cookie放入的值,必须是通过url编码后的数据,而我们这里使用json或pickle编码,能存入,但不可被解析
解决办法
找到一个能进行url编码的函数,这里找到一个urlencode的函数。但该函数只能编码字典,所以我们要将列表构造成字典,编码完成后再剔除构造字典所新增的冗余部分,如下
from urllib.parse import urlencode
def dumps_to_cookie(list):
obj={'sub':list}
return urlencode(obj).replace('sub=','')
将列表传入函数,就可以得到该列表的url编码
注意:该方法仅可编码没有中文的列表
还没有评论,来说两句吧
