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

Flask+SQLAlchemy提交数据到MySQL时报tuple类型无法转换错误如何解决

问题原因

报错根源是Project实体类的自定义构造方法存在语法笔误:
在给start_date、end_date两个属性赋值的语句末尾多写了英文逗号。Python语法中,变量赋值时末尾加逗号会默认将值封装为一元元组,比如a = date(2021,11,8), 实际得到的a是(date(2021,11,8),),而非预期的日期对象。
SQLAlchemy将数据写入MySQL时,发现这两个字段存储的是元组类型,MySQL驱动无法识别转换该类型,因此抛出对应报错。

解决方法

两种方案二选一即可:

  • 修正Project类的构造方法,删掉赋值语句末尾多余的逗号,修正后的代码如下:
def __init__(self, title, client, work_week, start_date, end_date, description):
    self.title = title
    self.client = client
    self.work_week = work_week
    self.start_date = start_date
    self.end_date = end_date
    self.description = description
  • 直接删除自定义的__init__方法:继承自SQLAlchemy Base类的模型默认会自动生成匹配字段的构造方法,不需要手动实现,删除后可以完全避免这类手写构造方法带来的笔误问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:27:03