Python распаковывает данные gzip в память без файла

У меня есть gzipped данные из ответа HTTP. У меня есть следующий код:

def gzipDecode(self, content): import StringIO import gzip outFilePath = 'test' compressedFile = StringIO.StringIO(content) decompressedFile = gzip.GzipFile(fileobj=compressedFile) with open(outFilePath, 'w') as outfile: outfile.write(decompressedFile.read()) data = '' with open(outFilePath, 'r') as myfile: data=myfile.read().replace('\n', '') return data 

который распаковывает входные данные gzipped и возвращает строку (http-ответ – gzipped json). – Оно работает.

Но мне это нужно, не создавая тестовый файл – все в памяти.

Я изменил его на:

 def gzipDecode(self, content): import StringIO from io import BytesIO import gzip outFile = StringIO.StringIO() compressedFile = StringIO.StringIO(content) decompressedFile = gzip.GzipFile(fileobj=compressedFile) outFile.write(decompressedFile.read()) outFile.flush() data = outFile.read().replace('\n', '') print "_" + data + "_" return data 

но он сбой ( gzipDecode производит пустой вывод) при разборе json:

 Traceback (most recent call last): __ File "/usr/lib/python2.7/SocketServer.py", line 593, in process_request_thread self.finish_request(request, client_address) ---------------------------------------- File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request Exception happened during processing of request from ('10.123.66.3', 39853) self.RequestHandlerClass(request, client_address, self) ---------------------------------------- File "/usr/lib/python2.7/SocketServer.py", line 649, in __init__ self.handle() File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle self.handle_one_request() File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request method() File "/tmp/test_server.py", line 92, in do_POST data = json.loads(file_content) File "/usr/lib/python2.7/json/__init__.py", line 338, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded 

Что я делаю плохо?

Python - лучший язык программирования в мире.