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

FastAPI结合SQLAlchemy报Array()缺少sequence参数错误排查

问题原因

报错的核心触发点有两个:

  1. Array是SQLAlchemy提供的数组类型构造器,必须传入数组存储的元素数据类型作为必填位置参数,你代码里写的Array[string]用了Python的下标方括号语法,没有把元素类型传入Array的构造方法,因此触发缺少必填参数sequence的报错。
  2. 代码存在多处大小写、缩进的语法错误:SQLAlchemy内置的列构造方法是大写开头的Column、字符串类型是大写开头的String,你代码里全写成了小写的column、string,同时类继承的基类、字段缩进也不符合Python类的定义规范。

补充说明:SQLAlchemy的原生Array类型默认适配PostgreSQL的原生数组字段,如果你用的是MySQL、SQLite等不支持原生数组类型的数据库,建议直接用JSON类型存储数组数据,兼容性更好。

修正方案

首先确保导入正确的类,再按照规范写模型定义:

from sqlalchemy import Column, String, Array
from sqlalchemy.ext.declarative import declarative_base

# 声明式基类 命名统一用大写开头的Base
Base = declarative_base()

class Post(Base):
    __tablename__ = "posts"
    # Array后用小括号传入元素类型String,所有内置类首字母大写,保持正确缩进
    answer = Column(Array(String), nullable=False)

如果需要约束数组的固定长度,可以给Array传入dimensions参数,比如定义固定存储3个字符串的数组:

answer = Column(Array(String, dimensions=3), nullable=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:45:29