python中的字典类型转化为bytes类型,及base64编码中“”双引号和‘’单引号编码结果不同

import base64
import json
1.
a={"Vod":{"userData":"{}".format("e42e6dedf7a5a3fd19689aeb74bb1605")}}
r=bytes('{}'.format(a),'utf-8')
print(r)   #b"{'Vod': {'userData': 'e42e6dedf7a5a3fd19689aeb74bb1605'}}"

base64.b64encode(r).decode('utf-8')  #'eydWb2QnOiB7J3VzZXJEYXRhJzogJ2U0MmU2ZGVkZjdhNWEzZmQxOTY4OWFlYjc0YmIxNjA1J319'

2.

a={"Vod":{"userData":"{}".format("e42e6dedf7a5a3fd19689aeb74bb1605")}}

base64.b64encode(json.dumps(a).replace(' ','').encode('utf-8')).decode('utf-8')

#'eyJWb2QiOnsidXNlckRhdGEiOiJlNDJlNmRlZGY3YTVhM2ZkMTk2ODlhZWI3NGJiMTYwNSJ9fQ=='

3.

a=b'{"Vod":{"userData":"e42e6dedf7a5a3fd19689aeb74bb1605"}}'

base64.b64encode(a).decode('utf-8')

#'eyJWb2QiOnsidXNlckRhdGEiOiJlNDJlNmRlZGY3YTVhM2ZkMTk2ODlhZWI3NGJiMTYwNSJ9fQ=='

字符串转化为bytes的坑,在转化的时候非常聪明地加了空格,导致三次的base64编码结果不一样,用字符串中的replace将空格替换掉,字符串转化可以用bytes(json.dumps({"lw":"{}".formt("1314")}),'utf-8')或者json.dumps({"lw":"{}".formt("1314")}).encode('utf-8')

字典用str转化成bytes时生成的是单引号,用json.dumps()生成的json格式是双引号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值