Python3中Base64编码和解码,使用的是base64模块中的b64encode 和 b64decode方法,关于怎么使用,首先查看源码中的说明:
b64encode:
Encode the bytes-like object s using Base64 and return a bytes objectb64decode:
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(),将一个对象转换为字符串格式
整体代码如下:文章来源:https://www.toymoban.com/news/detail-546026.html
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模板网!