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