QueryBuilder Класс
Интерфейс Fluent для создания и выполнения запросов OData к клиенту синхронизации.
Предоставляет цепочку методов для создания сложных запросов с помощью составных выражений фильтров. Можно использовать автономную (через build()) или привязать к клиенту (через execute).
Конструктор
QueryBuilder(table: str)
Параметры
| Имя | Описание |
|---|---|
|
table
Обязательно
|
Имя схемы таблицы для запроса. |
Примеры
Построение автономных запросов:
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}
Методы
| execute |
Выполните запрос и результаты возврата. Возвращает все собранные QueryResult страницы. Используется execute_pages для отложенной итерации на страницу. Этот метод доступен только при создании QueryBuilder с помощью По крайней мере один из
Не рекомендуется использовать с версии The: Пример:
|
| execute_pages |
Lazily дает по одному QueryResult на страницу HTTP. Каждая итерация активирует сетевой запрос через По крайней мере один из Пример:
|
| to_dataframe |
Выполните запрос и результаты возврата в виде кадра данных pandas.
Не рекомендуется использовать версию Все страницы объединяются в один кадр данных. Этот метод доступен только при создании QueryBuilder с помощью По крайней мере один из Пример:
|
execute
Выполните запрос и результаты возврата.
Возвращает все собранные QueryResult страницы. Используется execute_pages для отложенной итерации на страницу.
Этот метод доступен только при создании QueryBuilder с помощью client.query.builder(table).
QueryBuilder Автономные экземпляры должны использовать build() для получения параметров и передачи их client.records.list() вручную.
По крайней мере один из select()них where()или top() должен вызываться раньше execute(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.
Не рекомендуется использовать с версии The:by_page параметр не рекомендуется. Используется execute_pages для отложенной итерации на страницу или обычного execute() (без флага) для результата по умолчанию.
Пример:
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]
Параметры Keyword-Only
| Имя | Описание |
|---|---|
|
by_page
|
Default value: <object object at 0x0000021A213288E0>
|
Возвращаемое значение
| Тип | Описание |
|---|---|
|
QueryResult со всеми собранными страницами (по умолчанию) или итератором страниц (не рекомендуется |
Исключения
| Тип | Описание |
|---|---|
|
Если ограничение не |
|
|
Если запрос не был создан с помощью |
execute_pages
Lazily дает по одному QueryResult на страницу HTTP.
Каждая итерация активирует сетевой запрос через @odata.nextLink.
Один выстрел — не итерации более одного раза.
По крайней мере один из select()них where()или top() должен вызываться раньше execute_pages(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.
Пример:
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]
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Итератор для каждой страницы QueryResult. |
Исключения
| Тип | Описание |
|---|---|
|
Если ограничение не |
|
|
Если запрос не был создан с помощью |
to_dataframe
Выполните запрос и результаты возврата в виде кадра данных pandas.
Не рекомендуется использовать версиюQueryBuilder.execute().to_dataframe() : Вместо.
QueryBuilder.to_dataframe() в будущем выпуске будет удален.
Все страницы объединяются в один кадр данных.
Этот метод доступен только при создании QueryBuilder с помощью client.query.builder(table).
По крайней мере один из select()них where()или top() должен вызываться раньше to_dataframe(); в противном случае ValueError вызывается, чтобы предотвратить случайное сканирование полной таблицы.
Пример:
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
Возвращаемое значение
| Тип | Описание |
|---|---|
|
Кадр данных, содержащий все соответствующие записи. Возвращает пустой кадр данных, если записи не совпадают. |
Исключения
| Тип | Описание |
|---|---|
|
Если ограничение не |
|
|
Если запрос не был создан с помощью |