我有一个大的python dict,可能是10MB,未能将它保存在mysqldb 中,因为repr(dict) 我尝试了zlib.compress,结果字符串无法保存mysql。现在如何压缩字典并转换为二进制文件并保存为blob?任何编码示例?
#update 我尝试了使用 zlib 的 struct,对于 200k 字符长度的字符串,大约减少了 50%。
测试:
import zlib, struct, ast
dic={}
for i in xrange(20):
dic[str(i)]=i
s=zlib.compress(repr(dic), 5)
bs=struct.pack('%ds' %len(s),s)
s2=struct.unpack('%ds' %len(s),bs)[0]
s2=zlib.decompress(s2)
dic2=ast.literal_eval(s2)
assert dic2==dic