Я пытаюсь преобразовать очень большое количество файлов Excel с несколькими листами (некоторые из них также очень большие) в json файлы. Поэтому я создал список с именами листов и затем создал al oop, чтобы создать фрейм данных для каждого листа, а затем записал этот фрейм данных в файл. json. Мой код:
from zipfile import ZipFile
from bs4 import BeautifulSoup
import pandas as pd
file = 'filename.xlsx'
with ZipFile(file) as zipped_file:
summary = zipped_file.open(r'xl/workbook.xml').read()
soup = BeautifulSoup(summary, "xml")
sheets = [sheet.get("name") for sheet in soup.find_all("sheet")]
for i in sheets:
df = pd.read_excel(file, sheet_name = i, index = False, header = 1)
json_file = df.to_json(("{}.json").format(i))
Этот код работает как шарм, когда листы не очень большие. Когда я запускаю его для файла Excel, он работает и создает файлы json, которые мне нужны, вплоть до того, что он находит очень большой лист с большим количеством данных и вылетает. Поэтому мой вопрос: есть ли другой, более эффективный способ сделать это без сбоя программы. Когда я запускаю команду df = pd.read_excel отдельно для каждого листа, она работает без проблем, но мне нужно, чтобы это произошло в al oop