Python中的Base64编码和解码

这篇具有很好参考价值的文章主要介绍了Python中的Base64编码和解码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python3中Base64编码和解码,使用的是base64模块中的b64encode 和 b64decode方法,关于怎么使用,首先查看源码中的说明:

b64encode
Encode the bytes-like object s using Base64 and return a bytes object

b64decode
Decode the Base64 encoded bytes-like object or ASCII string s… The result is returned as a bytes object.

要点:
b64encode,入参是bytes-like object,出参是 bytes object
b64decode,入参是bytes-like object or ASCII string,出参是 bytes object

我们一般经常使用的是string或dict类型,因此在使用前后,还需要进行处理。

b64encode入参处理:

  • 如果要编码的是json字符串,要先转为bytes object,需要使用字符串的encode()方法(该方法返回的是一个字节序列,即bytes 类型)
  • 如果要编码的是字典,可以先使用json.dumps(),将字典转为字符串,然后再使用字符串的encode()方法。注意json.dumps()生成json,会在key和value之间默认加个空格,需要使用separators=(‘,’,‘:’)去除。

b64encode和b64decode出参处理:

  • 需要使用Python的内置函数str(),将一个对象转换为字符串格式

整体代码如下:

import base64
import json

def str2base64(data)
    en = base64.b64encode(data.encode('utf-8'))
    return str(en,'utf8')

def base642str(base64_str):
    de = base64.b64decode(base64_str)
    return str(de,'utf8')

data_str='{"name":"abc","age":20,"info":{"order":[{"apple":2,"pear":3}]}}'
data_dict={"name":"abc","age":20,"info":{"order":[{"apple":2,"pear":3}]}}

# data_str为字符串
result_1=str2base64(data_str)
print(result_1)

# data_dict为字典,先将字典转为字符串,使用separators=(',',':')去除空格
data_new=json.dumps(data_dict, separators=(',',':'))
result_2=str2base64(data_new)
print(result_2)

# base64解码
result_3=base642str(result_1)
print(result_3)

result_4=base642str(result_2)
print(result_4)

执行结果文章来源地址https://www.toymoban.com/news/detail-546026.html

eyJuYW1lIjoiYWJjIiwiYWdlIjoyMCwiaW5mbyI6eyJvcmRlciI6W3siYXBwbGUiOjIsInBlYXIiOjN9XX19
eyJuYW1lIjoiYWJjIiwiYWdlIjoyMCwiaW5mbyI6eyJvcmRlciI6W3siYXBwbGUiOjIsInBlYXIiOjN9XX19
{"name":"abc","age":20,"info":{"order":[{"apple":2,"pear":3}]}}
{"name":"abc","age":20,"info":{"order":[{"apple":2,"pear":3}]}}

到了这里,关于Python中的Base64编码和解码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java - 将base64编码解码成图片

    为了方便测试,我们可以使用一个图片编码网站,将图片进行base64编码 解密的代码如下 因为图片的Base64字符串非常大,动辄几百K,所以不能直接使用 String base64 = \\\"${该图片的base64串}\\\" 进行测试,否则编译器会报错 Java \\\"constant string too long\\\" compile error\\\" 。这个错误的出现,是因

    2023年04月09日
    浏览(54)
  • 前端Base64 编码和解码的使用方法

    使用 Base64 类从 ‘js-base64’ 库进行 Base64 编码和解码 vue: 使用 npm 或 yarn 包管理器来安装‘js-base64’ 库 原生: 通过 vue: 导入 Base64 类: 或者: vue: Base64 编码的使用示例: Base64 解码的使用示例: 或者,导入 encode 和 decode 函数: Base64 编码的使用示例: Base64 解码的使用示例

    2024年02月07日
    浏览(48)
  • 【python学习】基础篇-编码与解码 decode()方法 将对象元素打包成元组zip()函数

    在 Python 中使用字符串对象的encode()方法来实现编码。 encode0 方法是字符串对象内置的一个实现方法用于实现编码操作。语法格式如下: str.encode([encoding[,errors]]) 解码字符串则需要使用 bytes 对象的 decode0 方法来实现。 bytes.decode([encoding[,errors]]) 参数encoding 表示要进行编码的字符

    2023年04月19日
    浏览(43)
  • php的Url 安全的base64编码解码类

    2024年02月04日
    浏览(45)
  • 【JS】实现 Base64 编码和解码(及中文乱码问题)

    JavaScript 定义了两个与 Base64 相关的全局方法。 遇到中文编码需要先做一次 URI 组件编码或对解码后的内容进行 URI 解码 示例:Base64 编码 示例:Base64 解码 中文乱码处理方法: 按照 Base64 插件:编解码: js-base64 ,判断是否是Base64编码格式: is-base64 插件使用

    2024年02月15日
    浏览(40)
  • base64与BytesIO图片进行编码、解码;api调用

    io.BytesIO 和 Base64 编码都是用于在内存中处理二进制数据的方法,但它们的目的和使用场景有所不同。 1) io.BytesIO io.BytesIO 是 Python io 库中的一个类,它提供了一个在内存中处理二进制数据的接口,模拟了一个文件对象。它允许你像操作文件一样操作内存中的二进制数据,这对

    2024年01月24日
    浏览(59)
  • python标准模块介绍 -Base64: Base64, Base85等数据编码

    功能:RFC 3548: Base16, Base32, Base64 数据编码。转换二进制数据为适合明文协议传输的 ASCII 序列。转换 8bits 为每个字节包含 6,5 或 4bits 的有效数据,比如 SMTP, URL 的一部分或者 HTTP POST 的一部分。参考: RFC 3548。编码算法不同于 uuencode。 类型:标准库 相关模块:uu, binhex, uu, quopri Base64

    2024年02月05日
    浏览(45)
  • Linux系统下使用命令行进行Base64编码和解码

    大家知道,编码是将数据转换为有效传输或存储所需格式的过程。相反,解码是将编码数据转换回其原始格式的过程。今天在这里向大家介绍一下 Base64 编码和解码,以便大家理解与学习。 Base64 是将二进制数据转换为 ASCII 的编码方式之一。通常,当二进制数据传输到无法正

    2024年02月11日
    浏览(47)
  • python基础-base64编码理解

    目录 1、base64是什么 2、base64有什么用 3、base64如何用 4、理解base64 5、扩展 1、base64是什么 base64 就是包括字母a-z,A-Z,数字0-9,符号“+”,“/”一共64个字符的字符集; 还有一个‘=’ 字符,占位补充;         -- 这样看实际是65个字符了,‘=’只是占位  任何数据都可以转

    2024年01月20日
    浏览(43)
  • 图片的编码存储与解码输出(基于Android将图片转Base64编码后再次解码会导致图片失真的解决办法)

    链接:https://pan.baidu.com/s/1hvVupGcCf1f41fizF08SNg?pwd=9988  提取码:9988 部分源码: 转Base64编码部分: 以上Android程序运行后会将图片的转为Base64编码进行存储,以下是图片转码后的结果。 下面是进行验证的php代码: 但是解码后输出后的照片出现了严重失真 数据量增加:Base64 编码

    2024年01月18日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包