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.