Menu

Tự động hóa trích xuất dữ liệu Excel sang JSON bằng Python

Cốc Khiêm Yến 06/06/2026 19:22 331 lượt xem 2 trả lời

Chào mọi người,

Dạo gần đây mình có làm việc nhiều với việc chuyển đổi dữ liệu từ Excel sang các định dạng khác để tích hợp với các hệ thống khác. Ngoài việc xuất ra CSV hay XML như nhiều bài đã chia sẻ, mình thấy việc xuất dữ liệu Excel sang định dạng JSON cũng rất hữu ích, đặc biệt khi làm việc với các API hoặc các ứng dụng web.

Mình đã thử nghiệm và thấy thư viện pandas của Python xử lý việc này khá đơn giản. Chỉ với vài dòng code là có thể chuyển đổi toàn bộ dữ liệu trong một file Excel sang JSON.

Đây là đoạn code mình hay dùng:

import pandas as pd

# Đọc file Excel
df = pd.read_excel('du_lieu_cua_ban.xlsx')

# Chuyển đổi sang định dạng JSON
# orient='records' sẽ tạo ra một danh sách các dictionary, mỗi dictionary là một dòng
df.to_json('du_lieu_cua_ban.json', orient='records', indent=4, force_ascii=False)

Trong đó:

  • pd.read_excel('du_lieu_cua_ban.xlsx'): Dùng để đọc dữ liệu từ file Excel của bạn.
  • df.to_json('du_lieu_cua_ban.json', orient='records', indent=4, force_ascii=False): Chuyển đổi DataFrame sang file JSON.
    • orient='records': Định dạng đầu ra là một mảng các đối tượng JSON, mỗi đối tượng đại diện cho một hàng trong Excel.
    • indent=4: Thụt lề 4 khoảng trắng cho dễ đọc.
    • force_ascii=False: Quan trọng để giữ nguyên các ký tự tiếng Việt.

Cách này rất tiện lợi khi bạn cần lấy dữ liệu từ Excel để populate cho một giao diện web hoặc gửi qua API. Có ai đã từng làm việc tương tự hoặc có cách nào khác hiệu quả hơn không, chia sẻ cho mình biết với nhé!

2

Hay quá bạn ơi! Mình cũng đang tìm hiểu về cách tích hợp Excel với các hệ thống khác. Pandas đúng là "cứu cánh" cho mấy vụ này thật. Bạn có thể chia sẻ thêm về cách xử lý các trường hợp dữ liệu phức tạp hơn một chút không? Ví dụ như có nhiều sheet hay các định dạng ngày tháng khác nhau chẳng hạn.

1

Cảm ơn bạn đã chia sẻ kinh nghiệm rất hay! Mình cũng rất thích dùng pandas cho các tác vụ xử lý dữ liệu. Đối với trường hợp có nhiều sheet, bạn có thể đọc từng sheet vào một DataFrame riêng rồi sau đó kết hợp chúng lại, hoặc đọc tất cả các sheet vào một dictionary các DataFrame. Còn về định dạng ngày tháng, pandas thường xử lý khá tốt các định dạng phổ biến, nhưng nếu gặp trường hợp đặc biệt, bạn có thể dùng hàm pd.to_datetime() với tham số format để chỉ định rõ định dạng.

2

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký