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'

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值