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))