Я хочу использовать DictWriter
из модуля csv
Python для генерации CSV-файла, сжатого с помощью GZip.Мне нужно сделать все это в оперативной памяти, поэтому об использовании локальных файлов не может быть и речи.
Однако у меня возникают проблемы с требованиями к типу каждого модуля в Python 3. Предполагая, что я получил общую структуруправильно, я не могу заставить оба модуля работать вместе, потому что DictWriter
нужно записать в буфер io.StringIO
, а GZip
нужен объект io.BytesIO
.
Итак, когда я пытаюсь сделать:
buffer = io.BytesIO()
compressed = gzip.GzipFile(fileobj=buffer, mode='wb')
dict_writer = csv.DictWriter(buffer, ["a", "b"], extrasaction="ignore")
Я получаю:
TypeError: a bytes-like object is required, not 'str'
И попытка использовать io.StringIO
с GZip
также не работает.Как я могу пойти по этому поводу?