QueryBuilder Klasa
Interfejs Fluent do kompilowania i wykonywania zapytań OData względem klienta synchronizacji.
Zapewnia tworzenie złożonych zapytań za pomocą wyrażeń filtru, które można tworzyć. Można używać autonomicznego (za pośrednictwem build()) lub powiązanego z klientem (za pośrednictwem metody execute).
Konstruktor
QueryBuilder(table: str)
Parametry
| Nazwa | Opis |
|---|---|
|
table
Wymagane
|
Nazwa schematu tabeli do wykonywania zapytania. |
Przykłady
Autonomiczna konstrukcja zapytań:
from PowerPlatform.Dataverse.models import col
query = (QueryBuilder("account")
.select("name")
.where(col("statecode") == 0)
.top(10))
params = query.build()
# {"table": "account", "select": ["name"],
# "filter": "statecode eq 0", "top": 10}
Metody
| execute |
Wykonaj zapytanie i zwróć wyniki. Zwraca obiekt QueryResult ze wszystkimi zebranymi stronami. Służy execute_pages do iteracji z opóźnieniem na stronę. Ta metoda jest dostępna tylko wtedy, gdy program QueryBuilder został utworzony za pośrednictwem metody Co najmniej jeden z
Przestarzałe od wersji : Example:
|
| execute_pages |
Z opóźnieniem można uzyskać jeden QueryResult na stronę HTTP. Każda iteracja wyzwala żądanie sieciowe za pośrednictwem polecenia Co najmniej jeden z Example:
|
| to_dataframe |
Wykonaj zapytanie i zwróć wyniki jako ramkę danych biblioteki pandas.
Przestarzałe od wersji Użyj: Wszystkie strony są konsolidowane w jedną ramkę danych. Ta metoda jest dostępna tylko wtedy, gdy program QueryBuilder został utworzony za pośrednictwem metody Co najmniej jeden z Example:
|
execute
Wykonaj zapytanie i zwróć wyniki.
Zwraca obiekt QueryResult ze wszystkimi zebranymi stronami. Służy execute_pages do iteracji z opóźnieniem na stronę.
Ta metoda jest dostępna tylko wtedy, gdy program QueryBuilder został utworzony za pośrednictwem metody client.query.builder(table). Wystąpienia autonomiczne QueryBuilder powinny służyć build() do pobierania parametrów i przekazywania ich ręcznie client.records.list() .
Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed execute(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.
Przestarzałe od wersji :by_page Parametr jest przestarzały. Użyj execute_pages funkcji dla iteracji z opóźnieniem na stronę lub zwykłego execute() (bez flagi) dla domyślnego wyniku chętnego.
Example:
from PowerPlatform.Dataverse.models import col
for record in (client.query.builder("account")
.select("name")
.where(col("statecode") == 0)
.execute()):
print(record["name"])
execute(*, by_page=<object object>) -> QueryResult | Iterator[QueryResult]
Parametry Tylko słowo kluczowe
| Nazwa | Opis |
|---|---|
|
by_page
|
Domyślna wartość: <object object at 0x0000021A213288E0>
|
Zwraca
| Typ | Opis |
|---|---|
|
QueryResult ze wszystkimi zebranymi stronami (ustawienie domyślne) lub iteratorem strony (przestarzałe |
Wyjątki
| Typ | Opis |
|---|---|
|
Jeśli nie |
|
|
Jeśli kwerenda nie została utworzona za pomocą polecenia |
execute_pages
Z opóźnieniem można uzyskać jeden QueryResult na stronę HTTP.
Każda iteracja wyzwala żądanie sieciowe za pośrednictwem polecenia @odata.nextLink.
Jeden strzał — nie iteruj więcej niż raz.
Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed execute_pages(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.
Example:
from PowerPlatform.Dataverse.models import col
for page in (client.query.builder("account")
.select("name")
.where(col("statecode") == 0)
.execute_pages()):
process(page.to_dataframe())
execute_pages() -> Iterator[QueryResult]
Zwraca
| Typ | Opis |
|---|---|
|
Iterator poszczególnych stron QueryResult. |
Wyjątki
| Typ | Opis |
|---|---|
|
Jeśli nie |
|
|
Jeśli kwerenda nie została utworzona za pomocą polecenia |
to_dataframe
Wykonaj zapytanie i zwróć wyniki jako ramkę danych biblioteki pandas.
Przestarzałe od wersji Użyj:QueryBuilder.execute().to_dataframe() Zamiast.
QueryBuilder.to_dataframe() zostanie usunięta w przyszłej wersji.
Wszystkie strony są konsolidowane w jedną ramkę danych.
Ta metoda jest dostępna tylko wtedy, gdy program QueryBuilder został utworzony za pośrednictwem metody client.query.builder(table).
Co najmniej jeden z select()elementów , where()lub top() musi być wywoływany przed to_dataframe(); w przeciwnym razie ValueError element jest zgłaszany, aby zapobiec przypadkowym skanowaniom w pełnej tabeli.
Example:
from PowerPlatform.Dataverse.models import col
df = (client.query.builder("account")
.select("name", "telephone1")
.where(col("statecode") == 0)
.top(100)
.execute()
.to_dataframe())
to_dataframe() -> DataFrame
Zwraca
| Typ | Opis |
|---|---|
|
Ramka danych zawierająca wszystkie pasujące rekordy. Zwraca pustą ramkę danych, gdy rekordy nie są zgodne. |
Wyjątki
| Typ | Opis |
|---|---|
|
Jeśli nie |
|
|
Jeśli kwerenda nie została utworzona za pomocą polecenia |