python做数据增强的时候,使用base64进行编码解码出现b‘xxxx‘的问题

问题:

是在对labelme标注的目标检测*.json文件,进行数据增强扩充的时候,使用到了base64进行编码解码,然后发现新的*.json文件中的“imagedata“多了一个b'xxxx',即得到的编码结果前带有 b

查阅资料之后问题来源:

使用base64进行编码解码,Python3的字符串的编码语言用的是unicode编码,由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干字节,如果要在网络上传输,或保存在磁盘上就需要把str变成以字节为单位的bytes.

解决方法:

查阅到的方法:用str再转换一次,# 去掉编码结果前的 b

username="admin"
password="lian2020"
 
aa=base64.b64encode(username.encode("utf-8"))
print (aa)
print (str(aa,'utf-8'))
bb=base64.b64encode(password.encode("utf-8"))
print (str(bb))
print (str(bb,'utf-8'))

打印结果:

b'YWRtaW4='
YWRtaW4=
b'bGlhbjIwMjA='
bGlhbjIwMjA=

我自己代码里用的方法:

base64_data_original = str(base64.b64encode(b64.read()))
# 修改补充了两句
match_pattern=re.compile(r'b\'(.*)\'')
base64_data=match_pattern.match(base64_data_original).group(1)

再次输出的结果就正常去掉了b'

你可能感兴趣的:(python,开发语言)