Python 如何在fastapi中批量插入json对象
我正在从nsepy.xyz获取股票数据,并将其转换为字典以添加到数据库中, 下面的单次插入可以很好地工作,但在我尝试批量插入或添加_all()时都会导致错误 单嵌件工作正常Python 如何在fastapi中批量插入json对象,python,sqlalchemy,postgresql-9.3,fastapi,Python,Sqlalchemy,Postgresql 9.3,Fastapi,我正在从nsepy.xyz获取股票数据,并将其转换为字典以添加到数据库中, 下面的单次插入可以很好地工作,但在我尝试批量插入或添加_all()时都会导致错误 单嵌件工作正常 class CRUDBhav(CRUDBase[Bhav, BhavCreate, BhavUpdate]): def create( self, db: Session, *, obj_in: BhavCreate ) -> Bhav: obj_in_data = jsonable_encoder(o
class CRUDBhav(CRUDBase[Bhav, BhavCreate, BhavUpdate]):
def create(
self, db: Session, *, obj_in: BhavCreate
) -> Bhav:
obj_in_data = jsonable_encoder(obj_in)
db_obj = self.model(**obj_in_data)
db.add(db_obj)
db.commit()
db.refresh(db_obj)
return db_obj
但是当我尝试批量插入时
def insert_bulk(
self, db: Session, *, bhav_in: List[BhavCreate]
):
obj_in_data = jsonable_encoder(bhav_in)
db_obj = self.model(**[obj_in_data])
db.bulk_save_objects(db_obj)
db.commit()
# db.refresh(db_obj)
return obj_in_data
这给了我一个错误
backend_1 | File "./app/api/api_v1/endpoints/bhav.py", line 35, in read_bhav
backend_1 | crud.bhav.insert_bulk(db=db, bhav_in=price_in)
backend_1 | File "./app/crud/crud_bhav.py", line 26, in insert_bulk
backend_1 | db_obj = self.model(**[obj_in_data])
backend_1 | TypeError: DeclarativeMeta object argument after ** must be a mapping, not list
我应该尝试更新模式吗?除了使用add_all()或bulk_insert()这个数据外,实现解决方案的最佳方法是什么。要解压列表,我们使用一个星号
db_obj=self.model(*[obj_in_data])