PythonでExcelデータをJsonに変換しよう
main.pyと同じ階層にある「convert.xlsx」のデータを「converted.json」に変換するコードを記述しました!
import openpyxl
import json
from tkinter import messagebox
import json
import html
messagebox.showinfo("Excel確認", "エクセルのファイル名を\n\n"
"[convert.xlsx]\n\n"
"としてこのファイルと同じフォルダに格納してください。")
EXCEL_FILEPATH = None
try:
EXCEL_FILEPATH = "convert.xlsx"
except:
messagebox.showerror("error", "ファイルが見つかりませんでした。")
wb = openpyxl.load_workbook(EXCEL_FILEPATH)
sheet_list = wb.sheetnames
tar_sheet = sheet_list[0]
tar_wb = wb[tar_sheet]
start = messagebox.askquestion("確認", f"jsonに変換するシートは、\n\n"
f"{sheet_list[0]}\n\n"
f"よろしいですか?")
if start == "yes":
# ----------------Excelデータリスト化--------------------#
data_lists = []
for row in tar_wb:
data_list = []
for data in row:
data_list.append(data.value)
data_lists.append(data_list)
# ----------------key情報をdata情報を分ける--------------------#
keys = data_lists[0]
datas = data_lists[1:]
number_of_keys = len(keys)
number_of_rows = len(datas)
# ----------------json_dataに格納--------------------#
json_data = []
for data in datas:
test_json = {}
for n in range(number_of_keys):
try:
test_json[keys[n]] = data[n]
except IndexError:
pass
json_data.append(test_json)
print(json_data)
with open("converted.json", encoding="utf-8", mode="w") as file:
json.dump(json_data, file, indent=4)
else:
messagebox.showerror("エラー", "処理は中断されました")
ぜひ参考にしてください!また!