QueryBuilder 类

Fluent 接口,用于针对同步客户端生成和执行 OData 查询。

提供用于使用可组合筛选器表达式构造复杂查询的方法链。 可以使用独立(通过 build())或绑定到客户端(通过 execute)。

构造函数

QueryBuilder(table: str)

参数

名称 说明
table
必需
str

要查询的表架构名称。

示例

独立查询构造:


   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 延迟每页迭代。

仅当通过 client.query.builder(table)QueryBuilder 创建时,此方法才可用。 独立 QueryBuilder 实例应用于 build() 获取参数并将其手动传递给它们 client.records.list()

至少调用一个 select()where()或者 top() 必须调用之前 execute();否则会引发 a ValueError 以防止意外的全表扫描。

自版本以来已弃用: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_pages

Lazily 为每个 HTTP 页面生成一个 QueryResult

每次迭代都会通过 @odata.nextLink.. 触发网络请求。 一枪 — 不要多次循环访问。

至少调用一个 select()where()或者 top() 必须调用之前 execute_pages();否则会引发 a 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())
to_dataframe

执行查询并将结果作为 pandas 数据帧返回。

自版本使用以来已弃用:QueryBuilder.execute().to_dataframe() 相反。 QueryBuilder.to_dataframe() 将在将来的版本中删除。

所有页面都合并到单个数据帧中。

仅当通过 client.query.builder(table)QueryBuilder 创建时,此方法才可用。

至少调用一个 select()where()或者 top() 必须调用之前 to_dataframe();否则会引发 a ValueError 以防止意外的全表扫描。

示例:


   from PowerPlatform.Dataverse.models import col

   df = (client.query.builder("account")
         .select("name", "telephone1")
         .where(col("statecode") == 0)
         .top(100)
         .execute()
         .to_dataframe())

execute

执行查询并返回结果。

返回 QueryResult 收集的所有页面。 用于 execute_pages 延迟每页迭代。

仅当通过 client.query.builder(table)QueryBuilder 创建时,此方法才可用。 独立 QueryBuilder 实例应用于 build() 获取参数并将其手动传递给它们 client.records.list()

至少调用一个 select()where()或者 top() 必须调用之前 execute();否则会引发 a ValueError 以防止意外的全表扫描。

自版本以来已弃用: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]

仅限关键字的参数

名称 说明
by_page
默认值: <object object at 0x0000021A213288E0>

返回

类型 说明

QueryResult 收集的所有页面(默认值)或页面迭代器(已弃用 by_page=True)。

例外

类型 说明

select where top如果未设置约束。

如果未通过 创建查询

execute_pages

Lazily 为每个 HTTP 页面生成一个 QueryResult

每次迭代都会通过 @odata.nextLink.. 触发网络请求。 一枪 — 不要多次循环访问。

至少调用一个 select()where()或者 top() 必须调用之前 execute_pages();否则会引发 a 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迭代器 。

例外

类型 说明

select where top如果未设置约束。

如果未通过 创建查询

to_dataframe

执行查询并将结果作为 pandas 数据帧返回。

自版本使用以来已弃用:QueryBuilder.execute().to_dataframe() 相反。 QueryBuilder.to_dataframe() 将在将来的版本中删除。

所有页面都合并到单个数据帧中。

仅当通过 client.query.builder(table)QueryBuilder 创建时,此方法才可用。

至少调用一个 select()where()或者 top() 必须调用之前 to_dataframe();否则会引发 a 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

返回

类型 说明

包含所有匹配记录的数据帧。 如果没有记录匹配,则返回空的 DataFrame。

例外

类型 说明

select where top如果未设置约束。

如果未通过 创建查询