Exporte
Alle passenden Items auf einmal, als CSV oder NDJSON, gestreamt.
/export schreibt jedes Item, das zu Ihren Filtern passt, in eine einzige Antwort, gestreamt, während es gelesen wird:
als CSV (für Tabellenkalkulationen und Datenbanken) oder als NDJSON (ein JSON-Objekt je Zeile, für Programme).
Es nimmt dieselben Filter wie /items.
curl -H "Authorization: Bearer $PRICANA_KEY" -o items.csv "https://pricana.io/api/v1/export?format=csv"curl -H "Authorization: Bearer $PRICANA_KEY" -o laptops.ndjson \
"https://pricana.io/api/v1/export?format=ndjson&category=computers-laptops"CSV-Spalten
id, title, price, currency, url, image, category, category_path, site, source, first_seen_at, last_seen_at, last_changed_at, removed_at, attributes, brand, gtin, mpn, attribution
UTF-8 mit Kopfzeile, durch Kommas getrennt, wo nötig in Anführungszeichen. attributes enthält die übrigen Werte des
Shops als JSON. Neue Spalten kommen nur am Ende hinzu, damit Programme, die nach Position lesen, weiter funktionieren.
Zellen, die mit =, +, - oder @ beginnen, bekommen ein vorangestelltes ', damit Tabellenkalkulationen sie nicht
als Formeln ausführen.
NDJSON
Jede Zeile ist ein Item, so wie /items es liefert:
import json, os, requests
with requests.get("https://pricana.io/api/v1/export", params={"format": "ndjson"},
headers={"Authorization": f"Bearer {os.environ['PRICANA_KEY']}"}, stream=True, timeout=3600) as r:
r.raise_for_status()
for line in r.iter_lines():
item = json.loads(line)
...Exportzeilen
Exportierte Zeilen zählen gegen die Exportzeilen pro Monat Ihres Plans. Die Antwort sagt, wie viele Zeilen sie enthält und wie viele übrig sind:
| Header | |
|---|---|
X-Export-Rows | Zeilen in diesem Export |
X-Export-Rows-Remaining | danach in diesem Monat übrige Zeilen |
X-Export-Truncated | true, wenn der Export am Monatslimit endete |
X-Export-Matching | mit X-Export-Truncated: wie viele Zeilen gepasst hätten |
X-Export-Overage | true: Zeilen über dem Monatskontingent, berechnet (bezahlte Pläne) |
In bezahlten Plänen werden Zeilen über dem Monatskontingent als Overage berechnet, wie es auf der
Preisseite steht; der Export ist vollständig. Im Plan Free, in der Testphase und wo Overage abgeschaltet
ist (auf Wunsch, siehe Limits), endet ein Export, der über das Übrige hinausginge, am Limit (er
schlägt nicht fehl); ist nichts mehr übrig, antwortet er mit 429. Grenzen Sie ihn
mit Filtern ein (nach Dataset, Kategorie oder changedSince) oder wählen Sie einen größeren Plan. Die Seite Export im
Portal zeigt die übrigen Zeilen, bevor Sie beginnen.
Exporte in Sync-Jobs
Ein nächtlicher Export mit changedSince ist ein einfacher Weg, eine Kopie frisch zu halten: einmal alles exportieren,
dann jede Nacht nur, was sich seit dem letzten Lauf geändert hat, mit status=all: Entfernte Items kommen mit gesetztem
removedAt, und Sie löschen sie aus Ihrer Kopie (ohne erfahren Sie nie von Entfernungen). Für Änderungen binnen Minuten
nutzen Sie den Change-Feed.