【发布时间】:2020-07-17 07:44:15
【问题描述】:
我正在尝试将大量带有多张工作表的 Excel 文件(其中一些也很大)转换为 .json 文件。所以我创建了一个包含工作表名称的列表,然后创建了一个循环来为每个工作表创建一个数据框,然后我将此数据框写入一个 .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 命令时,它可以正常工作,但我需要循环执行此操作
【问题讨论】: