《Python Cookbook(第3版)中文版》——6.10 Base64编码和解码

6.10 Base64编码和解码

6.10.1 问题

我们需要采用Base64编码来对二进制数据做编码解码操作。

6.10.2 解决方案

base64模块中有两个函数——b64encode()和b64decode()——它们正是我们所需要的。示例如下:

>>> # Some byte data
>>> s = b'hello'
>>> import base64
>>> # Encode as Base64
>>> a = base64.b64encode(s)
>>> a
b'aGVsbG8='
>>> # Decode from Base64
>>> base64.b64decode(a)
b'hello'
>>>

6.10.3 讨论

Base64编码只能用在面向字节的数据上,比如字节串和字节数组。此外,编码过程的输出总是一个字节串。如果将Base64编码的数据同Unicode文本混在一起,那么可能需要执行一个额外的解码步骤。示例如下:

>>> a = base64.b64encode(s).decode('ascii')
>>> a
'aGVsbG8='
>>>

当解码Base64数据时,字节串和Unicode文本字符串都可以作为输入。但是,Unicode字符串中只能包含ASCII字符才行。

时间: 2024-08-30 21:25:29

《Python Cookbook(第3版)中文版》——6.10 Base64编码和解码的相关文章

《Python Cookbook(第3版)中文版》——导读

前 言 自2008年以来,我们已经目睹了整个Python世界正缓慢向着Python 3进化的事实.众所周知,完全接纳Python 3要花很长的时间.事实上,就在写作本书时(2013年),大多数Python程序员仍然坚持在生产环境中使用Python 2.关于Python 3不能向后兼容的事实也已经做了许多努力来补救.的确,向后兼容性对于任何已经存在的代码库来说是个问题.但是,如果你着眼于未来,你会发现Python 3带来的好处绝非那么简单. 正因为Python 3是着眼于未来的,本书在之前的版本上

Python base64编码解码实例

  这篇文章主要介绍了Python base64编码解码实例,本文直接给出实例代码,使用也很简单,需要的朋友可以参考下 Python中进行Base64编码和解码要用base64模块,代码示例: ? 1 2 3 4 5 6 7 #-*- coding: utf-8 -*- import base64   str = 'cnblogs' str64 = base64.b64encode(str) print str64 #Y25ibG9ncw== print base64.b64decode(str

Python获取图片的Base64编码实例代码及把图片转Base64编码

用Python 获取图片的Base64编码,源代码如下:  代码如下 复制代码 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' # base64-pic.py ''' import os, base64 icon = open('ya.png','rb') iconData = icon.read() iconData = base64.b64encode(iconData) LIMIT = 60 liIcon = [] while True:

《Python Cookbook(第3版)中文版》——6.12 读取嵌套型和大小可变的二进制结构

6.12 读取嵌套型和大小可变的二进制结构 6.12.1 问题 我们需要读取复杂的二进制编码数据,这些数据中包含有一系列嵌套的或者大小可变的记录.这种数据包括图片.视频.shapefile(zh.wikipedia.org/zh-cn/Shapefile)等. 6.12.2 解决方案 struct模块可用来编码和解码几乎任何类型的二进制数据结构.为了说明本节中提到的这种数据,假设我们有一个用Python数据结构表示的点的集合,这些点可用来组成一系列的三角形: polys = [ [ (1.0,

《Python Cookbook(第3版)中文版》——6.2 读写JSON数据

6.2 读写JSON数据 6.2.1 问题 我们想读写以JSON(JavaScript Object Notation)格式编码的数据. 6.2.2 解决方案 json模块中提供了一种简单的方法来编码和解码JSON格式的数据.这两个主要的函数就是json.dumps()以及json.loads().这两个函数在命名上借鉴了其他序列化处理库的接口,比如pickle.下面的示例展示了如何将Python数据结构转换为JSON: import json data = { 'name' : 'ACME',

拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高级主题 两大部分,以 Python 2.x 作为主要演示版本,涵盖的知识面广,知识点较齐全,代码多且好理解,但对 Python 版本特性的内容太久远,不合时宜. 整体来说 Python 核心 部分是主要内容,高级主题 部分作为应用扩展内容.后半部分篇幅较短,内容不够深入,只到了解的层面,好在横向够广(每一个主

(六十二)第四章总结——《C++ Primer Plus 第6版 中文版》

书是<C++ Primer Plus  第6版  中文版> 数组.指针.结构 是C++的3种复合类型.   注:为了方便,类型名用int为主,变量名用a为主.   数组: 包括数组(例如int a[10];)和字符串(例如char a[10];),还有string类(例如string a="abc";),vector类(例如vector<int>a(5)).array类(array<int,3>a)等. 数组名表示数组所在的(第一个元素)内存地址.

求大神解答一下-C++ primer plus 第6版 中文版 第16章复习题的一个问题

问题描述 C++ primer plus 第6版 中文版 第16章复习题的一个问题 奇葩的是课后居然没答案...... 求正规.严谨.简洁的标准答案! 程序清单16.15(在p708页):functor.cpp //functor.cpp--using a functor #include尖括号iostream尖括号 #include尖括号list尖括号 #include尖括号iterator尖括号 #include尖括号algorithm尖括号 template//functor class

谁有&amp;amp;lt;&amp;amp;lt;CLR Via C#&amp;amp;gt;&amp;amp;gt;第三版中文版的电子书

问题描述 谁有<<CLRViaC#>>第三版中文版的电子书,我是个初学者,看网上推荐此书的人多,想看一下,我的QQ:330784617.谢谢!! 解决方案 解决方案二:试一试我一般看英文的,虽然很少看书:(解决方案三: 解决方案四:第二版有的,想看第三版.