QueryBuilder 类
Fluent 接口,用于针对同步客户端生成和执行 OData 查询。
提供用于使用可组合筛选器表达式构造复杂查询的方法链。 可以使用独立(通过 build())或绑定到客户端(通过 execute)。
示例
独立查询构造:
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 延迟每页迭代。 仅当通过 至少调用一个
自版本以来已弃用: 示例:
|
| execute_pages |
Lazily 为每个 HTTP 页面生成一个 QueryResult 。 每次迭代都会通过 至少调用一个 示例:
|
| to_dataframe |
执行查询并将结果作为 pandas 数据帧返回。
自版本使用以来已弃用: 所有页面都合并到单个数据帧中。 仅当通过 至少调用一个 示例:
|
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 收集的所有页面(默认值)或页面迭代器(已弃用 |
例外
| 类型 | 说明 |
|---|---|
|
|
|
|
如果未通过 |
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迭代器 。 |
例外
| 类型 | 说明 |
|---|---|
|
|
|
|
如果未通过 |
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。 |
例外
| 类型 | 说明 |
|---|---|
|
|
|
|
如果未通过 |