У меня есть база данных с некоторыми данными в двоичном виде (тип данных blob в MySQL), которая на самом деле была уничтожена и распакована.Теперь я хочу извлечь их и записать каждую запись в файл gzip, который я бы предположил, чтобы быть выполнимым - после того, как все они gzipped-данные правильно?
Вопрос, однако, как мне это сделать?В результате поиска я смог найти миллион примеров того, как записать файл gzip из оригинальных данных, а не из архива gzip.Запись gzip-строки непосредственно в файл не приводит к gzip-файлу, не говоря уже о том, что у меня получилось множество исключений «порядковый номер не в диапазоне».
Не могли бы вы, ребята, помочь?Заранее спасибо.Я новичок в Python ...
Редактировать: Вот метод, который я использовал:
def store_cache(self, content, news_id):
if not content:
return
# some of the records may contain normal data (not gzipp-ed), hence this try block
try:
content = self.gunzip(content)
except:
return
import gzip
with gzip.open('static/cache/%s' % (self.base36encode(news_id), ), 'wb') as f:
f.write(content)
f.close()
Это вызывает исключение:
<type 'exceptions.UnicodeEncodeError'> at /migrate
'ascii' codec can't encode character u'\u1edb' in position 186: ordinal not in range(128)
И этоявляется самой внутренней трассировкой:
E:\Python27\lib\gzip.py in write
self.crc = zlib.crc32(data, self.crc) & 0xffffffffL