six: Python2和3的兼容库
Six 提供了一些简单的工具用来封装 Python 2 和 Python 3 之间的差异性
Six provides simple utilities for wrapping over differences between Python 2 and Python 3.
The name, “six”, comes from the fact that 2*3 equals 6. Why not addition? Multiplication is more powerful, and, anyway, “five” has already been snatched away.
参考:http://www.itpub.net/thread-1709185-1-1.html
uuid: Python使用UUID库生成唯一ID
UUID是128位的全局唯一标识符,通常由32字节的字符串表示。可以保证时间和空间的唯一性。它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。
公司:uuid.uuid4().hex 由伪随机数得到,有一定的重复概率,该概率可以计算出来。 .hex是16进制
延展:
Python使用UUID库生成唯一ID
python中hex,oct,chr,ord函数讲解
UUID 和 GUID 的区别
random
random.sample(list, 8)从list中随机取8个
json
json_str = json.dumps(obj) obj = json.loads(json_str)
json.dump(obj, f) obj = json.load(f) obj
dumps的参数separators=(‘,’, ‘:’)紧凑型jison,boqing在搞universilink时只能解析紧凑的
request
base64
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法;Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息;
优点:速度快,ascii字符,肉眼不可理解
缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合
>>> import base64
>>> s = '我是字符串'
>>> a = base64.b64encode(s)
>>> print a
ztLKx9fWt/u0rg==
>>> print base64.b64decode(a)
我是字符串
Python:字符串
http://blog.csdn.net/daduryi/article/details/71158303 后期搬出去
如何去掉字符串中不需要的字符strip(‘-+*’)/lstrip()/rstrip()/切片分段+/replace/sub/translate
'/'.join([QiniuUtil.CDN_URL, path]) #sub
s.split(sep=None, maxsplit=-1) #以sep为参数对字符串切割(默认为空格),返回list #注意 ''.split(',')返回['']
s.strip('xx') # 去除s前后的xx,默认为空格 lstrip('xx')、rstrip('xx'),当要去除的为’_medal’时,会出问题,是下划线的锅
future
from future import absolute_import
这样局部导入就不会覆盖全局导入,本地导入采用相对引用
from .celery import Celery # 是导入当前路径下celery的Celery
from celery import Celery # 是导入第三方的全局的celery模块下的Celery
datetime
now = datetime.datetime.now() 返回datetime.datetime(2017, 8, 13, 23, 13, 34, 92353)
now.strftime(‘%Y-%m-%d %H:%M:%S’) 日期格式化
timespan = now - past 返回datetime.timedelta(0, 127, 866440) span跨度 past过去
timespan.seconds timespan.total_seconds
python datetime处理时间
time
time.time()返回时间戳1502637091.418477 单位为秒