Google Cloud Machine Learning Engine v1 API不适用于过滤器jobId:rnn *

时间:2019-03-13 17:38:49

标签: google-api-python-client google-cloud-ml google-apis-explorer google-python-api

我开始将Machine Learning Engine API用于终端和python,发现bash API和python API之间存在一些差异:

$ gcloud ml-engine jobs list --filter='jobId:eval_*'
JOB_ID                                 STATUS     CREATED
eval_chest_frontal_golden_201903       SUCCEEDED  2019-03-12T14:35:50
... (30 other results)

和python中的

from oauth2client.client import GoogleCredentials
from googleapiclient import discovery
from googleapiclient import errors

ml = discovery.build('ml', 'v1')

request = ml.projects().jobs().list(
  parent="<<<PROJECT_NAME_HERE>>>",
  filter="jobId:eval_*")

response = None
try:
  response = request.execute()
except errors.HttpError as err:
  raise Exception("Request failed!")

print(response)
# Prints: {}

我用相同的参数查看了API资源管理器:

https://developers.google.com/apis-explorer/#p/ml/v1/ml.projects.jobs.list

我得到与python中相同的结果:{},但看起来URL并未转义*中的https://.../jobs?filter=jobId%3Aeval_*&key=...。也许那是错误。我可以在python API中解决此问题吗?

1 个答案:

答案 0 :(得分:0)

只需弄清楚您可以改用以下过滤器:"jobId:eval_"。如下所示:

request = ml.projects().jobs().list(
  parent="<<<PROJECT_NAME_HERE>>>",
  filter="jobId:eval_")

,并且具有与"jobId:eval_*"相同的作用。

唯一的担心是Google将来会弃用该功能:

  

警告:--filter:为了确保各个Google API的一致性,操作员评估正在发生变化。 jobId:eval_当前匹配,但在不久的将来将不匹配。运行gcloud topic filters了解详情。