Сжатие объекта Python в памяти

Большинство учебных пособий по сжатию файла в Python включают немедленную запись этого файла на диск без промежуточного сжатого объекта python. Я хочу знать, как распиливать, а затем сжимать объект python в памяти, не записывая и не читая с диска.

Я использую это, чтобы сохранить память в одном месте:

import cPickle import zlib # Compress: compressed = zlib.compress(cPickle.dumps(obj)) # Get it back: obj = cPickle.loads(zlib.decompress(compressed)) 

Если obj имеет ссылки на несколько небольших объектов, это может уменьшить объем памяти, используемый большим количеством. Множество небольших объектов в Python складывается из-за издержек памяти для каждого объекта, а также фрагментации памяти.

Батареи включены.

 >>> zlib.compress(pickle.dumps([42])) 'x\x9c\xd3\xc8)0\xe0\xf241\xe2J\xd4\x03\x00\x10A\x02\x87' 
 bz2.compress(pickle.dumps(some_object))