gzip_decode
なんとなく書いてしまったので.
def gzip_decode(data): from zlib import decompress, MAX_WBITS def skip_string(data, i): while data[i] != '\0': i += 1 return i + 1 flag = ord(data[3]) i = 10 if flag & 0x04: i += 2 + ord(data[i]) + 256 * ord(data[i + 1]) if flag & 0x08: i = skip_string(data, i) if flag & 0x10: i = skip_string(data, i) if flag & 0x02: return decompress(data[i + 2:-8], -MAX_WBITS) else: return decompress(data[i:], -MAX_WBITS)
物凄く手抜きコードなので、下記のほうが無難だと思います.
def gzip_decode(data): import gzip, StringIO return gzip.GzipFile(fileobj = StringIO.StringIO(data)).read()