Przejdź do treści

Python. Klasa contextlib.suppress(). Pomijanie brakujących pól w eksporcie.

Na czym to polega w sklepie

Kontekst suppress() z modułu contextlib wycisza podane typy wyjątków w bloku with. Przy parsowaniu opcjonalnych pól w eksportach e-commerce upraszcza kod bez rozbudowanych try/except.

Przykład ze sklepu internetowego

Pole coupon_code jest opcjonalne - brak klucza nie powinien zatrzymać importu:

from contextlib import suppress

rows = [
    {"order_id": "ORD-001", "revenue": 420.50},
    {"order_id": "ORD-002", "revenue": 180.00, "coupon_code": "SUMMER26"},
]

coupons = []
for row in rows:
    code = None
    with suppress(KeyError):
        code = row["coupon_code"]
    if code:
        coupons.append(code)

coupons  # ['SUMMER26']

Co zrobić po stronie biznesu

  • Parsowanie opcjonalnego gclid w logach sesji.
  • Odczyt niestandardowych wymiarów GA4 bez KeyError.
  • Best-effort konwersja daty w wieloformatowym CSV.

W skrócie

Używaj suppress świadomie - tylko tam, gdy pominięcie błędu jest oczekiwanym scenariuszem biznesowym, nie bugiem.