Chào mọi người,
Dạo này mình đang làm một dự án cá nhân, cần tự động cập nhật dữ liệu từ một API vào file Excel. Sau một hồi tìm hiểu, mình thấy dùng Python kết hợp với thư viện requests và pandas là khá hiệu quả. Nhân tiện chia sẻ lại với anh em trong diễn đàn, hy vọng có thể giúp ích cho các bạn đang gặp vấn đề tương tự.
Mục tiêu: Lấy dữ liệu từ một API (ví dụ: API thời tiết, API tin tức...) và ghi vào một file Excel. Dữ liệu này sẽ được cập nhật định kỳ.
Các bước thực hiện:
- Cài đặt thư viện: Nếu chưa có, bạn cần cài đặt
requestsvàpandas:pip install requests pandas openpyxl
- Gọi API: Sử dụng
requests.get(url)để lấy dữ liệu từ API. Dữ liệu thường trả về dưới dạng JSON. - Xử lý dữ liệu JSON: Chuyển đổi dữ liệu JSON thành DataFrame của pandas để dễ dàng thao tác.
data = response.json() df = pd.DataFrame(data['results']) # Giả sử dữ liệu nằm trong key 'results'
- Ghi vào Excel: Sử dụng
df.to_excel('ten_file.xlsx', index=False)để lưu DataFrame vào file Excel. Bạn có thể dùng thêm tham sốmode='a'(append) nếu muốn ghi thêm dữ liệu thay vì ghi đè, hoặc tùy chỉnh sheetname, header...
Ví dụ cơ bản:
import requests
import pandas as pd
API_URL = "https://api.example.com/data"
OUTPUT_FILE = "data_output.xlsx"
try:
response = requests.get(API_URL)
response.raise_for_status() # Báo lỗi nếu request thất bại
data = response.json()
df = pd.DataFrame(data)
# Ghi dữ liệu vào file Excel
df.to_excel(OUTPUT_FILE, index=False)
print(f"Dữ liệu đã được ghi vào {OUTPUT_FILE}")
except requests.exceptions.RequestException as e:
print(f"Lỗi khi gọi API: {e}")
except Exception as e:
print(f"Lỗi xử lý dữ liệu: {e}")
Đây chỉ là một ví dụ đơn giản. Tùy thuộc vào cấu trúc API và yêu cầu cụ thể, bạn có thể cần xử lý dữ liệu phức tạp hơn. Tuy nhiên, với requests và pandas, hầu hết các tác vụ này đều có thể giải quyết được.
Anh em có kinh nghiệm hoặc cách làm nào hay hơn thì chia sẻ thêm nhé!