sqlalchemy JSON 字段写入时中文序列化问题

JSON字段定义

python 复制代码
from sqlalchemy import Column, JSON

class Table(Base):
    __tablename__ = "table"
    __table_args__ = ({"comment": "表名称"})

    ...
    extra = Column(JSON, comment="其他属性")
    ...

局部序列化

python 复制代码
def create(extra):
    table= Table()
    # 直接存储,sqlalchemy会调用json.dumps序列化后存储,中文会被编码,修改ensure_ascii=False中文显示正常
    # table.extra = extra
    table.extra = json.dumps(extra, ensure_ascii=False)

全局序列化

python 复制代码
# app.config 中设置SQLALCHEMY_ENGINE_OPTIONS 
SQLALCHEMY_ENGINE_OPTIONS = {
    # 全局写入json时的序列化操作
    "json_serializer": lambda obj: json.dumps(obj, ensure_ascii=False)
}

设置json_serializer后,可以使用table.extra = extra保存json数据。

最终json_serializer会被传递至create_engine中去,官网文档中搜索json_serializer

相关推荐
梦想画家5 天前
SQLAlchemy关键词搜索技术深度解析:从基础过滤到全文检索
全文检索·sqlalchemy
梦想画家8 天前
SQLAlchemy系列教程:全文检索实战指南
全文检索·sqlalchemy
java1234_小锋23 天前
一周学会Flask3 Python Web开发-SQLAlchemy定义数据库模型
python·flask·sqlalchemy·flask3
梦想画家24 天前
SQLAlchemy系列教程:集成Pydantic增强数据处理能力
python·sqlalchemy
流烟默2 个月前
SQLAlchemy 中字段类型与常见数据库(MySQL、PostgreSQL 和 SQLite)的全面映射关系
数据库·sqlalchemy·字段映射
youhebuke2253 个月前
sqlalchemy CreateIndex
数据库·oracle·sqlalchemy
TCChzp6 个月前
FastApi SQLAlchemy SQLite
sqlite·fastapi·sqlalchemy
阿桂天山6 个月前
怎样用python+sqlalchemy获得mssql视图对应物理表关系(二)
数据库·python·sqlserver·sqlalchemy·视图
可愛小吉6 个月前
Python 课程18-SQLAlchemy
开发语言·python·sqlalchemy