python的坑

工作用python了大半年,不得不说python是门好语言,但是python的坑,尤其是python2的坑巨多。

对python2而言,最大的坑来自哪里呢?编码!

这篇文章会持续更新,记录python在使用过程中的各种坑


环境变量

在使用环境变量时,变量名中不能包含“-”(短横线),否则会导致无法解析

host = self.env.get("redishost")

是没有问题的,但是

host = self.env.get("redis-host")

会直接解析不到


base64 编码

在将string或者什么其他东西变为base64编码的时候,如果要将结果放在http请求中处理(即使是使用POST请求),那么应该使用:

record = base64.urlsafe_b64encode(record)

而不能使用

record = base64.b64encode(record)

这个urlsafe其实是原版的一个wrapper,会将原来编码中的“/”和“+”加以替换,避免在网络传输中失真

在解码的时候也需要注意,urlsafe_b64encode对应的解码是:

base64.urlsafe_b64decode(signature_b64)

但是,这个语句在某些版本上直接抛出异常:

TypeError: character mapping must return integer, None or unicode

此时解决的方案是将变量重新编码为ascii

base64.urlsafe_b64decode(signature_b64.encode('ascii'))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值