Ваш код 'shadows' zipfile
, который сам по себе не будет проблемой, но вызовет проблемы, если вам понадобится zipfile
позже в вашем коде. В общем, не скрывайте идентификаторы стандартной библиотеки и Python ключевые слова.
Почему это проблема, я не знаю, но кажется, json.dump
ожидает от указателя файла что-то похожее на файл объект, который ZipFile.open()
получает, у вас нет.
Вот как это обойти:
import io
from zipfile import ZipFile
import json
in_memory_zip = io.BytesIO()
with ZipFile(in_memory_zip, 'w') as zf:
with zf.open("1/1.json", 'w') as json_file:
data = {'key': 1}
data_bytes = json.dumps(data, ensure_ascii=False, indent=4).encode('utf-8')
json_file.write(data_bytes)