import json import gradio as gr import pandas as pd # Đọc dữ liệu từ file JSON with open('Diemthi2024_processed_csl.json', 'r', encoding='utf-8') as file: data = json.load(file) # Hàm tra cứu điểm thi def tra_cuu_diem_thi(sbd): if sbd in data: columns_diem = data["columns điểm"] columns_tohop = data["columns tổ hợp"] ket_qua = data[sbd] diem_thi = [ket_qua["Điểm thi"]] to_hop_list = ket_qua["Tổ hợp"] to_hop_list_str = [] for s1, d2, d3, s4, s5 in to_hop_list: to_hop_list_str.append([s1, f"{d2:0.2f}", f"{d3:0.2f}", s4, s5]) df_diem = pd.DataFrame(diem_thi, columns=columns_diem) df_tohop = pd.DataFrame(to_hop_list_str, columns=columns_tohop) return df_diem, df_tohop else: return "Không tìm thấy kết quả cho SBD này.", None # Tạo giao diện Gradio with gr.Blocks() as demo: gr.Markdown("# Tra cứu điểm thi TN 2024 (Trường THPT Chuyên - Tỉnh Sơn La)") sbd_input = gr.Textbox(label="Nhập SBD") tra_cuu_btn = gr.Button("Tra cứu") # out_diem = gr.Textbox(label="Điểm các môn thi", elem_classes="large-font") #out_diem = gr.Markdown(label="Điềm các môn thi") out_diem = gr.DataFrame(label="Điềm các môn thi", col_count=(9, "fixed"), row_count=(1, "fixed")) out_tohop = gr.DataFrame(label="Các tổ hợp xét tuyển", col_count=(5, "fixed"), row_count=(15, "fixed")) tra_cuu_btn.click(tra_cuu_diem_thi, inputs=sbd_input, outputs=[out_diem, out_tohop]) # Chạy ứng dụng demo.launch()