QueryBuilder 類別

流暢介面,用於建立並執行 OData 查詢,針對同步客戶端。

提供方法鏈以構建具有可組合濾式表達式的複雜查詢。 可獨立使用(經由 build()),或綁定至用戶端(經由 execute)。

建構函式

QueryBuilder(table: str)

參數

名稱 Description
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 懶惰的每頁迭代。

此方法僅在 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_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())
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())

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 預設收集所有頁面,或棄用 by_page=True頁面迭代器。

例外狀況

類型 Description

如果沒有 selectwheretop 設定任何限制條件。

如果查詢不是透過 client.query.builder()

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

如果沒有 selectwheretop 設定任何限制條件。

如果查詢不是透過 client.query.builder()

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

如果沒有 selectwheretop 設定任何限制條件。

如果查詢不是透過 client.query.builder()