gpt4 book ai didi

python - Google bigquery api 未列出历史作业

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:19 25 4
gpt4 key购买 nike

知道为什么 jobs.list() 只返回今天的工作吗?如果我打印变量 t 它只提供今天运行的作业。我应该怎么做才能获得更多历史记录,比如 90 天?

credentials = GoogleCredentials.get_application_default()
# Construct the service object for interacting with the BigQuery API.
bigquery_service = build('bigquery', 'v2', credentials=credentials)


t=bigquery_service.jobs().list(projectId=project_id,allUsers=True,
projection='full',stateFilter=job_state.lower()).execute()

最佳答案

发生这种情况是因为您没有迭代页面结果。将您的代码调整为:

credentials = GoogleCredentials.get_application_default()
service = build('bigquery', 'v2', credentials=credentials)
results = []

t=service.jobs().list(projectId=project_id,allUsers=True,
projection='full',stateFilter=job_state.lower()).execute()
results.append(t['jobs'])

while t.get('nextPageToken') is not None:
t=service.jobs().list(projectId=project_id,
allUsers=True,
projection='full',
stateFilter=job_state.lower(),
pageToken=t.get("nextPageToken")).execute()
if t.get('jobs'):
results.append(t['jobs'])

这应该使用 pageToken 迭代页面并将响应附加到结果

您还可以使用 python google-cloud-api这些操作已经为您自动处理(但如果您使用它,它将无法在 AppEngine 标准环境中运行)。

关于python - Google bigquery api 未列出历史作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47735851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com