Chào mọi người,
Dạo này mình đang làm một dự án cần trích xuất dữ liệu từ các file Excel và lưu trữ dưới dạng JSON để dễ dàng xử lý và tích hợp với các hệ thống khác. Mình thấy trong diễn đàn có nhiều bài chia sẻ về Python với Excel, nhưng chưa có bài nào đi sâu vào việc xuất dữ liệu Excel sang JSON. Hôm nay, mình muốn chia sẻ một script Python đơn giản mà mình đã viết để giải quyết vấn đề này.
Tại sao lại là JSON?
- JSON (JavaScript Object Notation) là một định dạng dữ liệu nhẹ, dễ đọc, dễ viết và dễ phân tích.
- Nó được sử dụng rộng rãi trong các ứng dụng web, API và trao đổi dữ liệu giữa các hệ thống.
Yêu cầu:
- Python 3
- Thư viện
pandas(cài đặt bằngpip install pandas)
Script Python:
import pandas as pd
def excel_to_json(excel_file_path, sheet_name, json_file_path):
try:
df = pd.read_excel(excel_file_path, sheet_name=sheet_name)
df.to_json(json_file_path, orient='records', indent=4, force_ascii=False)
print(f"Dữ liệu từ '{sheet_name}' đã được xuất thành công sang '{json_file_path}'")
except FileNotFoundError:
print(f"Lỗi: Không tìm thấy file '{excel_file_path}'")
except Exception as e:
print(f"Đã xảy ra lỗi: {e}")
# --- Ví dụ sử dụng ---
excel_input = 'du_lieu_ban_hang.xlsx' # Thay bằng tên file Excel của bạn
sheet_input = 'Sales Data' # Thay bằng tên sheet cần trích xuất
json_output = 'output_data.json' # Tên file JSON đầu ra
excel_to_json(excel_input, sheet_input, json_output)
Giải thích:
pd.read_excel(excel_file_path, sheet_name=sheet_name): Đọc dữ liệu từ file Excel vào một DataFrame của pandas.df.to_json(json_file_path, orient='records', indent=4, force_ascii=False): Xuất DataFrame ra file JSON.orient='records': Định dạng mỗi hàng trong DataFrame thành một đối tượng JSON riêng biệt.indent=4: Thụt lề 4 khoảng trắng để file JSON dễ đọc hơn.force_ascii=False: Đảm bảo các ký tự tiếng Việt không bị mã hóa thành dạng escape sequence.
Hy vọng script này hữu ích cho các bạn đang cần xử lý dữ liệu Excel theo cách tương tự. Nếu có bất kỳ câu hỏi nào, đừng ngần ngại đặt câu hỏi nhé!