【发布时间】:2021-12-30 07:49:54
【问题描述】:
假设我有一个简单的 SQLAlchemy 类和一个简单的 Flask o FastAPI 实现,如下所示:
from sqlalchemy.ext.declarative import declarative_base
from pydantic import BaseModel
Base = declarative_base()
class A(Base):
__tablename__ = 'as'
my_id = Column(String)
class AModel(BaseModel):
myId:str = None
还有一个像这样的简单端点:
@app_router.get('/a')
def get_all_a(session:Session = Depends(get_session)):
return session.query(A).all()
我怎样才能确保这个端点的返回列表在 camelCase 中产生如下:
[{'myId': 'id1'},{'myId': 'id2'}, ...]
注意:我的应用程序相当复杂,因为我也实现了分页,并且一些后处理需要更多的操作,而不仅仅是将蛇形大小写转换为驼峰大小写,因此最简单的解决方案是最好的。
我尝试过重写 dict() 方法和类似的东西,但没有成功,根本无法理解 FastAPI 如何处理结果以获取 JSON。
【问题讨论】:
-
这个 Stack OV 问题可以帮助你 Convert data keys between camelcase & snakecase,同时参考 marshmallow 官方文档也很有用 marshmallow - docs
标签: sqlalchemy fastapi camelcasing post-processing