json传输⼆进制的⽅案(python版)
json传输⼆进制的⽅案(python版)
1.json不能直接传⼆进制⽂件
json只能传递基本的数型(如:int,long,string等),但不能传递byte类型。但是有时候我们想在json中传送⼀些⼆进制⽂件,如:图⽚等,是没办法直接传输。
再给出解决⽅案前补充⼀下编码和解码的知识:
编码:将信息从⼀种形式或格式转换为另⼀种形式的过程,如:(⽣活中的字符串转计算机的存储字节,⼀种不可字符化的字节转另⼀⽤可字符化的字节)
解码:编码的逆向形式。
2.思路
数组的名词解释我们要通过⼀些办法将⼆进制⽂件转成字符串供给json传输,然后在服务端再将字符串转为⼆进制⽂件。
但是⼆进制⽂件⽆法直接转化为可打印的字符串(因为编码⽅式不允许),这时我们需要对⼆进制⽂件做⼀个转化,将⽂件的⼆进制序列转化为⼀种能被转为字符串的⼆进制序列,然后再转化为字符串。
⽂件(不可直接转字符串)----->编码后的⼆进制序列(可字符串化)----->字符串----->json传输
思路步骤如下:
1. 读取⼆进制⽂件(A)
2. 使⽤base64编码⽂件的⼆进制序列(A),编码后的⼆进制序列(B)转化为可打印的⽂本编码
3. 将编码后的⼆进制序列(B)转化为字符串
4. 使⽤json传输经过转换后的字符串
5. 在服务端将字符串重新转化为⼆进制序列(B)
6. 然后再通过base64解码成原⼆进制序列(A)
3.base64
regional什么意思base64有以下这些作⽤
python解析json文件a)所有的⼆进制⽂件,都可以因此转化为可打印的⽂本编码,使⽤⽂本软件进⾏编辑;
b)能够对⽂本进⾏简单的加密。
操作步骤如下:湖人里弗斯
jdk环境变量配置完要重启吗base64编码
with open(imgname,'rb')as img:
#读取⼆进制序列
data = ad()
#b64编码,⽣成新的可字符化的⼆进制序列
bast64_data = base64.b64encode(data)
#字符串化,使⽤utf-8的⽅式解析⼆进制
bast64_str =str(bast64_e,'utf-8')
#json传递
......
base64解码
#将字符串重新编码为utf-8的⼆进制序列(该序列被b64编码过)bast64_data = de(encoding='utf-8')
#b64解码,获得原⼆进制序列模板网站如何大量复制上线
data = base64.b64decode(bast64_data)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论