pickle

  • pickle模块是python的标准模块,提供了对于python数据的序列化操作,可以将数据转换为bytes类型,其序列化速度比json模块要高。
  • pickle.dumps() 将python数据序列化为bytes类型
  • pickle.loads() 将bytes类型数据反序列化为python的数据类型

base64

  • Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2^6=64,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。
  • Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据,包括MIME的电子邮件及XML的一些复杂数据。
  • python标准库中提供了base64模块,用来进行转换
  • base64.b64encode() 将bytes类型数据进行base64编码,返回编码后的bytes类型
  • base64.b64deocde() 将base64编码的bytes类型或者str类型进行解码,返回解码后的bytes类型

Demo:

import base64
import pickle
cart_dict = {1: [2, True], 2: [1, True]} # dict -> bytes -> str
cart_bytes = pickle.dumps(cart_dict) # 将python字典转换为16进制bytes类型
print(type(cart_bytes), "|", cart_bytes) # <class 'bytes'> cart_b64_bytes = base64.b64encode(cart_bytes) # 转换为base64_bytes
print(type(cart_b64_bytes), "|", cart_b64_bytes) # <class 'bytes'> cart_b64_str = cart_b64_bytes.decode() # 解码成base64_str
print(type(cart_b64_str), "|", cart_b64_str) # <class 'str'> print("=" * 100) cart_b64_str = "gAN9cQAoSwFdcQEoSwKIZUsCXXECKEsBiGV1Lg=="
# str -> bytes -> dict
cart_bytes = base64.b64decode(cart_b64_str) # 将字符串直接将base64_str转换为16进制的bytes
print(type(cart_bytes), "|", cart_bytes) # <class 'bytes'> cart_dict = pickle.loads(cart_bytes) # 将16进制的bytes转换为python字典
print(type(cart_dict), "|", cart_dict) # <class 'dict'> # 值得注意的是:在得到python字典的过程中,base64.decode()可以解码 base64_bytes,也可以直接解码 base64_str

  

end~

 

pickle 和 base64 模块的使用的更多相关文章

  1. python中pickle模块与base64模块的使用

    pickle模块的使用 pickle模块是python的标准模块,提供了对于python数据的序列化操作,可以将数据转换为bytes类型,其序列化速度比json模块要高. pickle.dumps() ...

  2. cookies保存购物车数据的编码问题(pickle和base64)

    在保存cookies时,如果存在着中文字符,cookies保存会报错.所以需要对数据进行编码. 通常cookies的保存都是以Base64来保存.所以先要对数据编码成bytes,再编码成base64字 ...

  3. python pickle 和 shelve模块

    pickle和shelve模块都可以把python对象存储到文件中,下面来看看它们的用法吧 1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 dn = {'b ...

  4. Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)

    本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...

  5. Python开发之序列化与反序列化:pickle、json模块使用详解

    1 引言 在日常开发中,所有的对象都是存储在内存当中,尤其是像python这样的坚持一切接对象的高级程序设计语言,一旦关机,在写在内存中的数据都将不复存在.另一方面,存储在内存够中的对象由于编程语言. ...

  6. Python中的base64模块

    本文介绍Python 2.7中的base64模块,该模块提供了基于rfc3548的Base16, 32, 64编解码的接口.官方文档,参考这里. 该模块提供两套接口,传统接口基于rfc1521的Bas ...

  7. base64模块的使用及python中的使用

    Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2^=,所以每6个比特为一个单元,对应某个可打印字符.3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字 ...

  8. base64模块

    ********base64模块******** Base64是一种用64个字符来表示任意二进制数据的方法. 用记事本打开exe.jpg.pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很 ...

  9. Python的 json 、 hashlib 、 Base64 模块

    json模块 简介 全称"JavaScript Object Notation" (JavaScript对象表示法)它是一种基于文本,独立于语言的轻量级数据交换格式 以易于让人阅读 ...

随机推荐

  1. 阶段5 3.微服务项目【学成在线】_day17 用户认证 Zuul_03-用户认证-认证服务查询数据库-查询用户接口-接口定义

    1.2.4 查询用户接口 完成用户中心根据账号查询用户信息接口功能. 在ucenter这个服务里面定义查询用户信息的接口 这个接口在auth的服务的loadUserByUserName这个方法里面被调 ...

  2. Kubernetes简介二

    Kubernetes是什么?Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署.自动扩缩容.维护等功能.通过Kubernetes你可以: 快速部署应用 快速扩展应用 ...

  3. HmacSHA256算法(C# 和 Java)

    Java代码: /** * HmacSHA256算法,返回的结果始终是32位 * @param key 加密的键,可以是任何数据 * @param content 待加密的内容 * @return 加 ...

  4. thymeleaf中switch case多出一个空行

    以下是<thymeleaf3.0.5中文参考手册.pdf>中的代码,官方代码没有具体去查询. <div th:switch="${user.role}"> ...

  5. linux计划任务以某个用户身份执行

    # Example of job definition: # .---------------- minute (0 - 59) # |  .------------- hour (0 - 23) # ...

  6. CentOS 7 vi详解

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  7. 100/200/400GE高速以太网:Autoneg & Link Training 自适应及链路学习相关姿势介绍

    2019-10-31 08:29:22 先写个目录,陆续补齐 PAM4模式下50GE,100GE,200GE,400GE以太网为什么需要AN & LT功能?AN .Autoneg自适应功能介绍 ...

  8. 一次Python爬虫的修改,抓取淘宝MM照片

    这篇文章是2016-3-2写的,时隔一年了,淘宝的验证机制也有了改变.代码不一定有效,保留着作为一种代码学习. 崔大哥这有篇>>小白爬虫第一弹之抓取妹子图 不失为学python爬虫的绝佳教 ...

  9. 最新 翔通动漫java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.翔通动漫等10家互联网公司的校招Offer,因为某些自身原因最终选择了翔通动漫.6.7月主要是做系统复习.项目复盘.Leet ...

  10. 最新 花椒直播java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.花椒直播等10家互联网公司的校招Offer,因为某些自身原因最终选择了花椒直播.6.7月主要是做系统复习.项目复盘.Leet ...