Python SDK
Offizieller Python-Client für Listings API mit typisierten Ressourcen, Cursor-Paginierung, automatischen Wiederholungen und benannten Fehlern.
Das Paket listingsapi ist der offizielle Python-Client für Listings API. Es kapselt die REST-Schicht mit typisierten Ressourcenklassen, cursorbasierter Paginierung, automatischen Wiederholungsversuchen bei vorübergehenden Fehlern und einer benannten Ausnahme für jede Fehlerart, einschließlich Fehlerdaten, die die Plattform mit HTTP 200 zurückgibt.
Installation
pip install listingsapiErfordert Python 3.9 oder höher. Die einzige Laufzeitabhängigkeit ist requests.
Authentifizierung
import listingsapi # Reads LISTINGSAPI_KEY from the environment automaticallyclient = listingsapi.ListingsAPI() # Or pass the key explicitlyclient = listingsapi.ListingsAPI(api_key="your-api-key")Rufen Sie Ihren API-Schlüssel unter API-Schlüssel → Neuer Schlüssel im Entwickler-Dashboard von Listings API ab.
Der Client akzeptiert drei optionale Schlüsselwortargumente:
Weitere Informationen finden Sie unter Konfiguration.
Kurzes Beispiel
import listingsapi client = listingsapi.ListingsAPI() page = client.locations.list(first=5)for loc in page: print(loc.name, loc.city) print(f"has_more: {page.has_more}")Ressourcen
Jede Ressource ist eine Eigenschaft des Clients:
Vier Hilfsmethoden stehen direkt am Client zur Verfügung:
client.plan_sites() # directories included in your planclient.subcategories() # business categories (IDs for locations.add)client.countries() # supported countries and states (ISO codes)client.subscriptions() # active subscriptions for the accountPaginierung
Methoden, die Listen zurückgeben, verwenden cursorbasierte Paginierung. Jede Methode mit Paginierung gibt ein SyncPage zurück: iterierbar, mit .has_more, .next_page(), .auto_paging_iter() und .total.
# Fetch one pagepage = client.locations.list(first=25)for loc in page: print(loc.name) # Check if more pages existif page.has_more: next_page = page.next_page() # Auto-paginate through every resultfor loc in client.locations.list(first=100).auto_paging_iter(): print(loc.name)Antwortobjekte
Alle Methoden geben APIObject (Zugriff über Attribute und als dict) oder SyncPage (iterierbar, paginiert) zurück. APIObject unterstützt auch .get() und .to_dict().
loc = client.locations.retrieve(16808) # Attribute accessprint(loc.name)print(loc.city) # Dict-style accessprint(loc["stateIso"]) # Safe access with a defaultprint(loc.get("website", "no website")) # Raw dictdata = loc.to_dict()Fehlerbehandlung
Jeder SDK-Fehler ist von listingsapi.ListingsAPIError abgeleitet. API-Fehler lösen APIError oder eine der folgenden Unterklassen aus: AuthenticationError, PermissionDeniedError, NotFoundError, ValidationError, RateLimitError (mit .retry_after) und InternalServerError. Netzwerkfehler lösen APIConnectionError aus.
APIError enthält status_code, code (den ersten Plattformfehlercode, e.g. SY10005), errors (jeder Eintrag wird zu {"code", "message", "context"}-dicts normalisiert) und response_body.
Die Plattform meldet einige Fehler im Antwortkörper einer HTTP-200-Antwort: errors[]-Nutzdaten auf oberster Ebene (ungültige Tokens werden als SY90005 zurückgegeben) und Antworten auf Schreibvorgänge mit success=false. Das SDK löst auch dafür Ausnahmen aus, sodass Sie success-Flags nie selbst prüfen müssen.
import listingsapi client = listingsapi.ListingsAPI() try: client.locations.retrieve(999999)except listingsapi.NotFoundError: print("No such location")except listingsapi.RateLimitError as e: print(f"Rate limited, retry in {e.retry_after}s")except listingsapi.APIError as e: print(e.status_code, e.code) for err in e.errors: print(err["code"], err["message"])Die vollständige Ausnahmehierarchie finden Sie unter Fehlerbehandlung.
Nächste Schritte
- Installation: virtuelle Umgebungen, Festlegung auf bestimmte Versionen
- Schnellstart: erste Aufrufe, einen Standort erstellen, auf eine Bewertung antworten
- Konfiguration: Zeitlimits, Wiederholungsversuche, Basis-URL
- Anwendungsfälle: Anleitungen für vollständige Abläufe
- Standorte, Bewertungen, Einträge, Analysen