如何在 x 为空之前保持 运行 相同的 GraphQL 查询?

How to keep running the same GraphQL query until x is null?

我有一个需要分页的 Tableau GraphQL 查询:

test_1 = """
{
  fieldsConnection (
    first: 10,
    orderBy: {field: NAME, direction: ASC}) {

nodes {
  name
  }
}
pageInfo {
  hasNextPage
  endCursor
    }
  }
}
"""

第二次查询:

test_2 = """
{
  fieldsConnection (
    first: 10,
    next: SOME_STRING
    orderBy: {field: NAME, direction: ASC}) {

nodes {
  name
  }
}
pageInfo {
  hasNextPage
  endCursor
    }
  }
}
"""

第一个查询将包含 hasNextPage = trueendCursor = "huge-ass-string"。我在服务器中看到的是,要提取所有感兴趣的字段,我需要 运行 查询 13 次!

我想做的是在 Python 中,使用 from tableau_api_lib import TableauServerConnection as tsc,编写一个 运行 第一个查询 (test_1) 的函数。如果 hasNextPage 为真,则 运行 第二个查询 (test_2) 将 next 值更新为我们从 endCursor.[=20= 获得的值]

这就是我从查询中获得 JSON 响应的方式:

response = conn.metadata_graphql_query(query = test_1)

这在 Python 中可行吗?

我刚刚在查询中实现了分页并不断循环并将提取的数据存储在 DataFrame 中