使用 Python 对数据进行压缩
之前在工作中遇到一个需求,需要在手机小程序端获取到微信小商店店铺的所有商品数据。由于当时我们没有在后台维护用户的商品数据,选择的解决方案是现场调用商品列表接口,然后缓存在 Redis 里。
鉴于 Redis 的内存还是比较宝贵的,而用户的商品数据(转化为 json 格式后)又是一些比较有规律的文本数据,比较适合进行数据压缩,于是我调研了一下 Python 中的数据压缩的方案。
zip
标准库
Python 中有一个标准库zip
,常用来处理 zip 格式文件,提供的函数和方法也更适合文件操作。在这个案例中我们的数据是通过 http 接口获取的,额外进行一些文件操作有些麻烦和多余,zip
标准库并不适合这个场景。
zlib
标准库
zlib是一个常用的压缩、解压库,使用了 deflate 算法。zip
和unzip
工具背后其实用的就是zlib
。Python 内置了zlib
标准库,提供的接口也很简洁易用(zlib.compress
和zlib.decompress
)。
1 | import zlib |