QueryBuilder Classe
Interfaccia Fluent per la compilazione e l'esecuzione di query OData su un client di sincronizzazione.
Fornisce il concatenamento dei metodi per costruire query complesse con espressioni di filtro componibili. Può essere usato autonomo (tramite build()) o associato a un client (tramite execute).
Costruttore
QueryBuilder(table: str)
Parametri
| Nome | Descrizione |
|---|---|
|
table
Necessario
|
Nome dello schema di tabella su cui eseguire una query. |
Esempio
Costruzione di query autonoma:
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}
Metodi
| execute |
Eseguire la query e restituire i risultati. Restituisce un oggetto QueryResult con tutte le pagine raccolte. Usare execute_pages per l'iterazione differita per pagina. Questo metodo è disponibile solo quando QueryBuilder è stato creato tramite Almeno uno di
Deprecato dalla versione The: Esempio:
|
| execute_pages |
Lazily restituisce una QueryResult per pagina HTTP. Ogni iterazione attiva una richiesta di rete tramite Almeno uno di Esempio:
|
| to_dataframe |
Eseguire la query e restituire i risultati come dataframe pandas.
Deprecato dall'uso della versione: Tutte le pagine vengono consolidate in un singolo dataframe. Questo metodo è disponibile solo quando QueryBuilder è stato creato tramite Almeno uno di Esempio:
|
execute
Eseguire la query e restituire i risultati.
Restituisce un oggetto QueryResult con tutte le pagine raccolte. Usare execute_pages per l'iterazione differita per pagina.
Questo metodo è disponibile solo quando QueryBuilder è stato creato tramite client.query.builder(table). Le istanze autonome QueryBuilder devono usare build() per ottenere parametri e passarli manualmente client.records.list() .
Almeno uno di select(), where()o top() deve essere chiamato prima execute()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.
Deprecato dalla versione The:by_page il parametro è deprecato. Usare execute_pages per l'iterazione differita per pagina o normale execute() (nessun flag) per il risultato eager predefinito.
Esempio:
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]
Parametri di sole parole chiave
| Nome | Descrizione |
|---|---|
|
by_page
|
Valore predefinito: <object object at 0x0000021A213288E0>
|
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
QueryResult con tutte le pagine raccolte (impostazione predefinita) o iteratore di pagina (deprecato |
Eccezioni
| Tipo | Descrizione |
|---|---|
|
Se non è stato impostato alcun |
|
|
Se la query non è stata creata tramite |
execute_pages
Lazily restituisce una QueryResult per pagina HTTP.
Ogni iterazione attiva una richiesta di rete tramite @odata.nextLink.
Un colpo : non eseguire l'iterazione più di una volta.
Almeno uno di select(), where()o top() deve essere chiamato prima execute_pages()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.
Esempio:
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]
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
Iteratore di per pagina QueryResult. |
Eccezioni
| Tipo | Descrizione |
|---|---|
|
Se non è stato impostato alcun |
|
|
Se la query non è stata creata tramite |
to_dataframe
Eseguire la query e restituire i risultati come dataframe pandas.
Deprecato dall'uso della versione:QueryBuilder.execute().to_dataframe() Invece.
QueryBuilder.to_dataframe() verrà rimosso in una versione futura.
Tutte le pagine vengono consolidate in un singolo dataframe.
Questo metodo è disponibile solo quando QueryBuilder è stato creato tramite client.query.builder(table).
Almeno uno di select(), where()o top() deve essere chiamato prima to_dataframe()di . In caso contrario, viene generato un ValueError oggetto per evitare analisi accidentali di tabelle complete.
Esempio:
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
Valori restituiti
| Tipo | Descrizione |
|---|---|
|
DataFrame contenente tutti i record corrispondenti. Restituisce un dataframe vuoto quando nessun record corrisponde. |
Eccezioni
| Tipo | Descrizione |
|---|---|
|
Se non è stato impostato alcun |
|
|
Se la query non è stata creata tramite |