前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 字符串 Base64

Python 字符串 Base64

原创
作者头像
HoneyMoose
发布2024-04-19 05:40:37
710
发布2024-04-19 05:40:37
举报
文章被收录于专栏:CWIKIUSCWIKIUS

因消息传输的需要,我们需要对大量文本的字符串进行一下 Base64 转换。

这样的好处是因为在传输的字符串中可能有存在一些特殊字符,这些特殊在经过网络传输的时候会出现编码的问题,并且会影响传输稳定性。

使用 Base64 可以避免这个问题。

2024-04-16_13-23-48
2024-04-16_13-23-48

方法

Python 的 Base64 后就可以完全只以为 ASCII 码进行传输了。

使用的方法为:

代码语言:javascript
复制
 base64.b64encode(json.loads(request_detail_data['Data'])['PolicyText'])

如果我们直接在上面使用字符串的话,程序会抛出类型错误:

代码语言:javascript
复制
TypeError: a bytes-like object is required, not 'str'
2024-04-16_13-24-00
2024-04-16_13-24-00

方法需要使用的字节码,换句话说就是需要字节对象进行加密,不能直接使用字符串。

可以使用的办法就是把字符串 转换为字节码。

代码语言:javascript
复制
name.encode('utf-8')

代码

代码语言:javascript
复制
bs64name = base64.b64encode(name.encode('utf-8'))

哪怕是使用了上面的代码, bs64name为bytes 类型,这就意味着得到的编码结果前带有 b,即b’xxxxxx’。

所以 Python 的 Base64 编码是从字节到字节的。

在完成上面的操作后,我们如果想直接返回字符串,那么我们还需要把字节码转换为字符串。

代码为:

代码语言:javascript
复制
bbs = str(base64.b64decode(bs64name), "utf-8")

上面的输出就为字符串了。

完整的代码为:

代码语言:javascript
复制
 policy_content = json.loads(request_detail_data['Data'])['PolicyText']
 data['policy_content'] = str(base64.b64encode(policy_content.encode("utf-8")), "utf-8")

经过上面 2 次转换就可以完成字符串的编码了。

https://www.isharkfly.com/t/python-base64/15646/2

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方法
    • 代码
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档