FetchXmlQuery 类

Inert FetchXML 查询对象。 在调用或execute_pages调用之前execute,不会发出 HTTP 请求。

通过 client.query.fetchxml(xml). 获取。

构造函数

FetchXmlQuery(xml: str, entity_name: str, client: DataverseClient)

参数

名称 说明
xml
必需

条带格式良好的 FetchXML 字符串。

entity_name
必需

元素中的 <entity> 实体架构名称。

client
必需

DataverseClient级。

方法

execute

执行 FetchXML 查询,并将所有结果作为一个 QueryResult返回 。

阻止 - 先提取所有页面,并在返回之前保留内存中的每条记录。 适用于中小型结果集的简单;当结果集可能很大,或者你想要在记录到达时处理记录时使用 execute_pages

示例:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute_pages

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

流式处理 - 每次迭代都会触发一个 HTTP 请求并生成一页。 首选于 execute 以下时间:

  • 结果集可能很大,并且不希望一次在内存中所有记录。

  • 需要提前退出:在找到所需内容后停止迭代,并自动跳过剩余的 HTTP 往返。

  • 需要每页进度报告或批处理的下游写入。

一枪 — 不要多次循环访问。

示例:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())

execute

执行 FetchXML 查询,并将所有结果作为一个 QueryResult返回 。

阻止 - 先提取所有页面,并在返回之前保留内存中的每条记录。 适用于中小型结果集的简单;当结果集可能很大,或者你想要在记录到达时处理记录时使用 execute_pages

示例:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute() -> QueryResult

返回

类型 说明

所有页面中的所有匹配记录。

execute_pages

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

流式处理 - 每次迭代都会触发一个 HTTP 请求并生成一页。 首选于 execute 以下时间:

  • 结果集可能很大,并且不希望一次在内存中所有记录。

  • 需要提前退出:在找到所需内容后停止迭代,并自动跳过剩余的 HTTP 往返。

  • 需要每页进度报告或批处理的下游写入。

一枪 — 不要多次循环访问。

示例:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())
execute_pages() -> Iterator[QueryResult]

返回

类型 说明

每页 QueryResult 对象的迭代器。