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

Flask+Python情感分析结果插入PostgreSQL报错,求SQL语句修改方案

解决psycopg2插入PostgreSQL时的UndefinedColumn错误

你的问题出在INSERT语句的变量引用方式上:PostgreSQL把你写的text、label、score识别成了列名,而非Python变量的取值,所以抛出"column 'text' does not exist"错误。

既然不能用字符串格式化的{},请使用psycopg2官方推荐的参数化查询,用%s作为占位符,将变量作为第二个参数传递给execute()方法。修改后的核心代码如下:

if request.method=='POST':
    text = request.form.get('user_comment')
    # 优化:避免重复调用model,一次调用存结果
    sentiment_result = model(text)[0]
    label = sentiment_result['label']
    score = sentiment_result['score']
    
    # 使用参数化查询插入数据
    curr.execute("""INSERT INTO message_sentiment(mytext, text_label, score)
                    VALUES (%s, %s, %s)""",
                 (text, label, score))
    # 记得提交事务,否则数据不会写入数据库
    conn.commit()

说明:

  1. %s是psycopg2的参数占位符,会自动处理变量的类型转换和SQL注入防护,不要和Python的字符串格式化%混淆。
  2. 额外优化了重复调用model(text)的问题,一次调用后存结果再取label和score,提升效率。
  3. 必须执行conn.commit()(conn是你的PostgreSQL连接对象),否则插入操作只会停留在事务中,不会持久化到数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:25:58