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

SQLAlchemy 2.x中JSON类型的正确Mapped映射注解是什么?

SQLAlchemy JSON类型的Mapped注解方案
  • 直接用dict是可行的,这也是很多日常场景里的常用写法。
  • 要是追求更严谨的类型约束,可根据JSON结构选择不同方案:
    • 若JSON是固定键值对结构,推荐用TypedDict定义结构化类型,搭配Mapped使用,能在代码层面做更精准的类型校验:
      from typing import TypedDict, Mapped
      from sqlalchemy.orm import mapped_column
      from sqlalchemy import JSON
      
      class UserSettings(TypedDict):
          theme: str
          auto_save: bool
      
      class User(Base):
          __tablename__ = "users"
          id: Mapped[int] = mapped_column(primary_key=True)
          settings: Mapped[UserSettings] = mapped_column(JSON)
      
    • 若JSON结构不固定(可能包含列表、嵌套结构等),用Mapped[dict]或Mapped[Any]都可以,前者更偏向键值对场景,后者兼容所有JSON支持的原生Python类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:35:19