import pickle,base64 # Cookie数据的编码 def carts_cookie_encode(cart_dict): """ 把购物车字典数据,经过pickle和base64编码成可视化字符 :param cart_dict: 购物车字典 :return: 可视化字符串 """ # 1、使用pickle把字段编码成字节 # 2、base64编码把字节编程成可视化字符 return base64.b64encode( pickle.dumps(cart_dict) ).decode() # Cookie数据解码 def carts_cookie_decode(cart_str): """ 把Cookie中的购物车数据(可视化字符串),经过base64解码和pickle解码成字典 :param cart_str: cookie中的字符串表示的购物车数据 :return: 购物车字典 """ # 1、base解码 # 2、pickle解码 return pickle.loads( base64.b64decode(cart_str.encode()) ) if __name__ == '__main__': # 编写针对当前模块的测试代码 d = {'1': {'count': 10, 'selected': True}, '2': {'count': 20, 'selected': False}} # 编码 cart_str = carts_cookie_encode(d) print("编码之后的可视化字符串:", cart_str) # 解码 cart_dict = carts_cookie_decode(cart_str) print("解码之后的字典数据:", cart_dict, type(cart_dict))