You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向AWS SageMaker端点正确发送含datetime字段的数据?

解决SageMaker AutoML端点JSON格式错误问题

问题分析

你遇到的错误有两个核心原因:

  • 字段名不匹配:训练数据定义的字段是backup_calls,但请求里写的是backup_call,少了末尾的s
  • JSON格式不符合AutoML端点要求:SageMaker AutoML的表格模型服务脚本(即报错里的tabular_serve.py),要求JSON请求必须用**instances数组包裹样本**,而非单个对象结构

修正后的请求代码

单个样本请求

import boto3
import json

endpoint = 'endpoint-name'
runtime = boto3.Session().client('sagemaker-runtime')

# 修正字段名,并按要求用instances数组包裹样本
data = {
    "instances": [
        {
            "d_time": "2023-05-19 03:34:34",
            "hour": 3,
            "day_of_week": 4,
            "shift": 3,
            "backup_calls": 0  # 修正字段名
        }
    ]
}

response = runtime.invoke_endpoint(
    EndpointName=endpoint,
    ContentType='application/json',
    Body=json.dumps(data)
)

result = json.loads(response['Body'].read().decode())
print(result)

多个样本批量请求

如果需要批量发送预测请求,直接在instances数组中添加更多样本对象即可:

data = {
    "instances": [
        {
            "d_time": "2023-05-19 03:34:34",
            "hour": 3,
            "day_of_week": 4,
            "shift": 3,
            "backup_calls": 0
        },
        {
            "d_time": "2023-05-20 10:15:00",
            "hour": 10,
            "day_of_week": 5,
            "shift": 2,
            "backup_calls": 1
        }
    ]
}

可选方案:CSV格式请求

AutoML端点默认也支持CSV格式,只要确保字段顺序和训练数据的列顺序一致即可:

# CSV格式请求,字段顺序需与训练数据列顺序严格匹配
csv_data = "2023-05-19 03:34:34,3,4,3,0"
response = runtime.invoke_endpoint(
    EndpointName=endpoint,
    ContentType='text/csv',
    Body=csv_data
)
result = json.loads(response['Body'].read().decode())

内容的提问来源于stack exchange,提问作者ssaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 04:12:32