QueryBuilder 類別
流暢介面,用於建立並執行 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 懶惰的每頁迭代。 此方法僅在 QueryBuilder 是透過 至少有一個
自版本 The: 起已棄用: 範例:
|
| execute_pages |
懶散地在每個 HTTP 頁面產生一個 QueryResult 。 每次迭代都會透過 觸發網路請求 至少有一個 範例:
|
| to_dataframe |
執行查詢並以 pandas DataFrame 回傳結果。
自版本以來已棄用 使用: 所有頁面合併成單一資料框架。 此方法僅在 QueryBuilder 是透過 至少有一個 範例:
|
execute
執行查詢並回傳結果。
回傳 QueryResult 時會收集所有頁面。 用於 execute_pages 懶惰的每頁迭代。
此方法僅在 QueryBuilder 是透過 client.query.builder(table)建立時才可用。
QueryBuilder獨立實例應該用build()來取得參數並手動傳入client.records.list()。
至少有一個 select()、 where()、 top() 或 必須在前 execute()呼叫;否則 a 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]
僅限關鍵字的參數
| 名稱 | Description |
|---|---|
|
by_page
|
預設值: <object object at 0x0000021A213288E0>
|
傳回
| 類型 | Description |
|---|---|
|
QueryResult 預設收集所有頁面,或棄用 |
例外狀況
| 類型 | Description |
|---|---|
|
如果沒有 |
|
|
如果查詢不是透過 |
execute_pages
懶散地在每個 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]
傳回
| 類型 | Description |
|---|---|
|
每頁 QueryResult的迭代器 。 |
例外狀況
| 類型 | Description |
|---|---|
|
如果沒有 |
|
|
如果查詢不是透過 |
to_dataframe
執行查詢並以 pandas DataFrame 回傳結果。
自版本以來已棄用 使用:QueryBuilder.execute().to_dataframe() 反而。
QueryBuilder.to_dataframe() 將在未來版本中移除。
所有頁面合併成單一資料框架。
此方法僅在 QueryBuilder 是透過 client.query.builder(table)建立時才可用。
至少有一個 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
傳回
| 類型 | Description |
|---|---|
|
包含所有匹配紀錄的資料框架。 當沒有紀錄相符時,會回傳一個空的資料框架。 |
例外狀況
| 類型 | Description |
|---|---|
|
如果沒有 |
|
|
如果查詢不是透過 |