0
0
Lập trình
NM

Xây Dựng API Lễ Hội Ấn Độ Đơn Giản Với Python

Đăng vào 2 tuần trước

• 5 phút đọc

Giới thiệu

Trong vai trò là một lập trình viên làm việc với thị trường Ấn Độ, tôi thường xuyên cần lập kế hoạch cho các tính năng hoặc chiến dịch dựa trên lịch lễ hội đa dạng của đất nước này. Gần đây, tôi cần một cách đơn giản để truy vấn các lễ hội theo khu vực và ngày tháng, nhưng tôi bị bất ngờ bởi sự thiếu hụt các lựa chọn tốt. Hầu hết các tập dữ liệu miễn phí đều đã lỗi thời hoặc không đầy đủ, và các API thương mại lớn thì lại là dịch vụ đăng ký tốn kém.

Vì vậy, tôi đã quyết định tự xây dựng giải pháp của riêng mình.

Trong bài hướng dẫn này, tôi sẽ hướng dẫn bạn cách tạo một lịch lễ hội có thể truy vấn được sử dụng tập dữ liệu JSON và một chút Python với thư viện pandas.

Chúng Ta Sẽ Xây Dựng Gì

Chúng ta sẽ viết một đoạn mã Python đơn giản có thể:

  • Tải danh sách các lễ hội từ một tệp JSON cục bộ.
  • Lọc các lễ hội dựa trên khu vực cụ thể (ví dụ: "Kerala").
  • In kết quả ra màn hình.

Điều Kiện Tiên Quyết

Bạn chỉ cần Python 3.8+ và thư viện pandas. Bạn có thể cài đặt pandas bằng lệnh sau:

bash Copy
pip install pandas

Bước 1: Dữ Liệu (Mẫu JSON của Chúng Ta)

Đầu tiên, chúng ta cần một số dữ liệu. Đối với bài hướng dẫn này, chúng ta sẽ sử dụng một mẫu nhỏ. Tạo một tệp có tên my_festivals.json và dán nội dung sau vào đó.

json Copy
[
  {
    "festival": "Holi",
    "date": "2025-03-14",
    "region": ["Toàn Ấn Độ"],
    "is_holiday": true,
    "category": "Hindu",
    "notes": "Lễ hội của màu sắc; Tăng 15% doanh thu bán lẻ (Amazon Ấn Độ 2024)."
  },
  {
    "festival": "Vishu",
    "date": "2025-04-14",
    "region": ["Kerala"],
    "is_holiday": true,
    "category": "Văn hóa",
    "notes": "Năm mới Kerala; Tăng doanh thu thương mại điện tử về vàng và trang phục."
  },
  {
    "festival": "Onam",
    "date": "2025-08-25",
    "region": ["Kerala"],
    "is_holiday": true,
    "category": "Văn hóa",
    "notes": "Lễ hội thu hoạch; Tăng trưởng doanh thu bán lẻ và khách sạn trong khu vực."
  },
  {
    "festival": "Diwali",
    "date": "2025-10-21",
    "region": ["Toàn Ấn Độ"],
    "is_holiday": true,
    "category": "Hindu",
    "notes": "Lễ hội ánh sáng; Tăng 20% doanh thu thương mại điện tử."
  },
  {
    "festival": "Durga Puja",
    "date": "2025-09-28",
    "region": ["Bengal Tây", "Assam", "Odisha"],
    "is_holiday": true,
    "category": "Hindu",
    "notes": "Thờ nữ thần; Tăng 15% doanh thu bán hàng trang phục."
  }
]

Bước 2: Đoạn Mã Python

Bây giờ, hãy viết mã Python. Tạo một tệp có tên run_query.py trong cùng thư mục. Đoạn mã này là phiên bản đơn giản hóa của mã trong bộ công cụ đầy đủ của tôi.

python Copy
import json
import pandas as pd

def load_festivals(file_path='my_festivals.json'):
    """Tải dữ liệu lễ hội từ tệp JSON."""
    try:
        with open(file_path, 'r') as f:
            return json.load(f)
    except FileNotFoundError:
        print(f"Lỗi: Tệp {file_path} không được tìm thấy.")
        return []

def query_festivals_by_region(region_name):
    """Lọc các lễ hội theo khu vực cụ thể."""
    all_festivals = load_festivals()
    if not all_festivals:
        return

    df = pd.DataFrame(all_festivals)

    # Lọc DataFrame
    regional_festivals = df[df['region'].apply(lambda regions: region_name in regions)]

    print(f"--- Các lễ hội ở {region_name} ---")
    print(regional_festivals.to_json(orient='records', indent=2))

# --- Khối thực thi chính ---
if __name__ == "__main__":
    query_festivals_by_region("Kerala")

Bước 3: Chạy Đoạn Mã và Xem Kết Quả

Bây giờ, hãy chạy đoạn mã từ terminal của bạn:

bash Copy
python run_query.py

Kết quả sẽ là:

Copy
--- Các lễ hội ở Kerala ---
[
  {
    "festival":"Vishu",
    "date":"2025-04-14",
    "region":["Kerala"],
    "is_holiday":true,
    "category":"Văn hóa",
    "notes":"Năm mới Kerala; Tăng doanh thu thương mại điện tử về vàng và trang phục."
  },
  {
    "festival":"Onam",
    "date":"2025-08-25",
    "region":["Kerala"],
    "is_holiday":true,
    "category":"Văn hóa",
    "notes":"Lễ hội thu hoạch; Tăng trưởng doanh thu bán lẻ và khách sạn trong khu vực."
  }
]

Thành công! Chúng ta vừa xây dựng một công cụ truy vấn cơ bản cho dữ liệu lễ hội của mình.

Mẹo và Thực Tiễn Tốt Nhất

  • Sử dụng cấu trúc dữ liệu rõ ràng: Lưu trữ dữ liệu lễ hội theo định dạng JSON giúp dễ dàng mở rộng và bảo trì.
  • Xử lý lỗi: Đảm bảo mã của bạn xử lý các tình huống lỗi, như khi tệp không được tìm thấy.
  • Tối ưu hóa tìm kiếm: Sử dụng các phương pháp tối ưu hóa để cải thiện hiệu suất truy vấn khi làm việc với tập dữ liệu lớn hơn.

Những Cạm Bẫy Thường Gặp

  • Dữ liệu không đầy đủ: Đảm bảo rằng tập dữ liệu của bạn bao gồm tất cả các lễ hội quan trọng.
  • Không kiểm tra lỗi: Thiếu các thông báo lỗi có thể khiến mã của bạn khó bảo trì.

Kết Luận

Bài hướng dẫn này đã cung cấp cho bạn khung cơ bản để xây dựng công cụ của riêng mình. Tuy nhiên, nếu bạn muốn tiết kiệm thời gian thu thập, làm sạch và xác minh dữ liệu cho hơn 100 lễ hội, tôi đã làm sẵn bộ công cụ đầy đủ trên Gumroad.

Bản đầy đủ bao gồm:

  • Tập dữ liệu hoàn chỉnh cho năm 2025-26 với hơn 100 lễ hội.
  • Các ghi chú thương mại điện tử và kinh doanh hữu ích cho mỗi lễ hội lớn.
  • Đoạn mã Python hoàn chỉnh với chức năng lọc nâng cao (theo khoảng thời gian) và xuất CSV.

Bạn có thể tải bộ công cụ đầy đủ tại đây.

Cảm ơn bạn đã đọc, và chúc bạn lập trình vui vẻ!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào