Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Dieser Artikel ist die Vorabveröffentlichungsdokumentation und unterliegt Änderungen.]
In diesem Artikel werden die verfügbaren Methoden zum Abfragen von Dataverse-Daten mithilfe des SDK für Python beschrieben. Sie können Daten mithilfe von STRUCTURED Query Language (SQL) und OData-basierten APIs abfragen.
Python-Entwickler sollten zunächst mehr über das SDK für Python erfahren, indem Sie "Erste Schritte "(Vorschau)" lesen, bevor Sie mit diesem Artikel fortfahren.
Abfragen von Daten mit SQL
Der SQL-Endpunkt des Dataverse-Webdiensts stellt eine Schnittstelle bereit, die eine schreibgeschützte Nutzung eines begrenzten Satzes von SQL-Befehlen SELECT ermöglicht. In diesem Artikel wird beschrieben, welche SELECT Abfrageoptionen verfügbar sind. Sie können auch über die Dataverse-Web-API auf den SQL-Endpunkt zugreifen, sodass code, der in anderen Sprachen als Python geschrieben wurde, darauf zugreifen kann.
Von Bedeutung
Die SQL-Unterstützung ist auf schreibgeschützte Abfragen beschränkt. Komplexe Verknüpfungen, Unterabfragen und bestimmte SQL-Funktionen werden möglicherweise nicht unterstützt. Die SQL-Abfrage muss der unterstützten Teilmenge folgen:
- WHERE kann nur eine boolesche Ausdrucksstruktur sein, bei der Blättern binäre Operatoren (=, >, wie, usw.) sind, wobei eines der Argumente ein direkter Spaltenverweis und das andere eine Konstante ist.
- TOP lässt nur ein ganzzahliges Literal zu.
- ORDERBY kann nur auf Spalten verweisen und lässt keine komplexen Ausdrücke zu.
Der folgende Beispielcode veranschaulicht eine SQL-Abfrage in Python.
# SQL query (read-only)
results = client.query.sql(
"SELECT TOP 10 accountid, name FROM account WHERE statecode = 0"
)
for record in results:
print(record["name"])
Dieser Aufruf gibt eine Liste von Wörterbüchern mit Ergebniszeilen zurück. Eine leere Liste wird zurückgegeben, wenn keine Zeilen übereinstimmen.
Abfragen von Daten mithilfe von OData
Sie können das SDK für Python-APIs client.records verwenden, um OData-Abfragen für Daten ausstellen zu können.
# OData query with paging
# Note: filter and expand parameters are case sensitive
for page in client.records.get(
"account",
select=["accountid", "name"], # select is case-insensitive (automatically lowercased)
filter="statecode eq 0", # filter must use lowercase logical names (not transformed)
top=100,
):
for record in page:
print(record["name"])
# Query with navigation property expansion (case-sensitive!)
for page in client.records.get(
"account",
select=["name"],
expand=["primarycontactid"], # Navigation property names are case-sensitive
filter="statecode eq 0", # Column names must be lowercase logical names
):
for account in page:
contact = account.get("primarycontactid", {})
print(f"{account['name']} - Contact: {contact.get('fullname', 'N/A')}")
Befolgen Sie beim Schreiben Ihrer OData-Aufrufe diese Richtlinien.
- Verwenden Sie für den
filterParameter genaue logische Namen in Kleinbuchstaben für Spaltennamen (z. B. "statecode eq 0", nicht "StateCode eq 0"). - Verwenden Sie für den
expandParameter Navigations-Eigenschaftsnamen, die genau mit den Servernamen übereinstimmen und bei denen die Groß-/Kleinschreibung beachtet wird. - Die Anweisung
selectund der Parameterorderbysind nicht case-sensitive und werden automatisch in Kleinbuchstaben konvertiert.