收到无效的 JSON 负载。“有效负载”处的未知名称“行”:无法在 google automl api 上找到字段

ash*_*del 5 google-cloud-platform google-cloud-automl

我正在尝试实现 google automl api: https: //cloud.google.com/automl-tables/docs/predict

api 文档说我需要以以下格式发布数据:

{
  "payload": {
    "row": {
     "values": [value1, value2,...]
         }
      }
}
Run Code Online (Sandbox Code Playgroud)

但是当我以相同格式发布数据时,出现以下错误:

{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"row\" at 'payload': Cannot find field.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
    "@type": "type.googleapis.com/google.rpc.BadRequest",
    "fieldViolations": [
      {
        "field": "payload",
        "description": "Invalid JSON payload received. Unknown name \"row\" at 'payload': Cannot find field."
      }
    ]
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的卷曲请求:

curl --location --request POST 'https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/TBLID:predict' \
--header 'Content-Type: application/json; charset=utf-8;' \
--header 'Accept-Charset: utf-8' \
--header 'Authorization: Bearer token here' \
--data-raw '{
 "payload": {
"row": {
  "values": [
    "",
    "4.900000",
    ""
  ]
}
 }
}'
Run Code Online (Sandbox Code Playgroud)

我不确定是什么导致了这个错误。任何人都可以帮助解决这个问题吗谢谢

MyN*_*leb 4

我有一个包含 AutoML 表的项目,这是发送的预测请求示例,该请求运行良好并返回结果,没有错误:

{
  "payload": {
    "row": {
      "values": [
        "2",
        "test text",
        "test text",
        "21",
        "0",
        "0",
        "test text",
        "10",
        "",
        "S"
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您不确定如何提交数据或遇到错误,请转到控制台中的项目和 AutoML Tables 模型,然后单击“测试和使用”。然后,按照以下说明从控制台获取在线预测。请注意 JSON 代码视图,它将为您提供准确的输入,并让您测试 JSON 输入。

为了测试,我提交了以下curl请求(更改了一些标识字符)

curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://automl.googleapis.com/v1beta1/projects/this-isnt-a-real-project-id/locations/us-central1/models/TBL123451234512345:predict
Run Code Online (Sandbox Code Playgroud)

我发送请求的同一目录中的 request.json 文件是:

{
    "payload": {
      "row": {
        "values": [
          "yes",
          "-1",
          "primary",
          "jul",
          "51",
          "0",
          "yes",
          "no",
          "88",
          "cellular",
          "blue-collar",
          "unknown",
          "10",
          "620",
          "married"
        ]
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

回应是:

{
  "payload": [
    {
      "tables": {
        "score": 0.9999906,
        "value": "no"
      }
    },
    {
      "tables": {
        "score": 9.42341e-06,
        "value": "yes"
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我还在邮递员中成功重复了相同的请求,如下:

curl --location --request POST 'https://automl.googleapis.com/v1beta1/projects/this-isnt-a-real-project-id/locations/us-central1/models/TBL123451234512345:predict' \
--header 'Accept-Charset: utf-8' \
--header 'Authorization: Bearer abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabcd' \
--header 'Content-Type: application/json' \
--data-raw '{
    "payload": {
      "row": {
        "values": [
          "yes",
          "-1",
          "primary",
          "jul",
          "51",
          "0",
          "yes",
          "no",
          "88",
          "cellular",
          "blue-collar",
          "unknown",
          "10",
          "620",
          "married"
        ]
      }
    }
  }'
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

7055 次

最近记录:

3 年,7 月 前