diemTN2024_csl / app.py
quocvuong82's picture
Upload 2 files
b4d617c verified
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()