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

部署Python模型REST接口遇ndarray无法JSON序列化错误求助

解决TypeError: Object of type ndarray is not JSON serializable错误

错误原因

你代码里没显式调用numpy,但regressor.predict()方法(比如scikit-learn等主流机器学习库的模型)内部会返回numpy ndarray类型结果,而REST端点在序列化返回值时,无法直接处理ndarray这种非Python原生类型,因此抛出序列化错误。

解决方案

把predict返回的ndarray转换成Python原生可序列化类型(列表或单个数值)即可,常用两种转换方式:

  • 若为单条预测结果,直接提取元素转为Python数值
  • 调用ndarray的tolist()方法转为列表

修改后的run函数示例

# Run the model and return the scored result.    
def run(Inputs):
    try:  
        prediction = regressor.predict(Inputs)
        # 方案1:单条结果提取为原生数值
        return prediction[0].item()
        # 方案2:转为列表(适配多条结果或保持列表输出格式)
        # return prediction.tolist()
    except Exception as e:
        # 建议添加异常捕获,避免服务直接崩溃
        return str(e)

额外提醒

你的测试输入input1包含9个元素,但示例输入schema里的standard_sample_input只有6个元素,需确保输入特征数量和模型训练时一致,避免后续出现维度不匹配的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 04:45:43