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

运行Streamlit+SQLite3项目报错__conform__()不是有效命令如何解决

错误原因
  • 你代码中result = st.text("Positive")得到的是Streamlit的前端渲染对象,不是你预期的"Positive"字符串。你将这个对象直接传给SQLite的插入方法时,SQLite会尝试调用对象的__conform__方法做类型适配,而该方法属于Streamlit内部未对外开放的命令,因此触发报错。
修复步骤

1. 修改主程序home_task.py的Insert逻辑

将result的定义和展示拆分,保证传给数据库的是字符串类型,同时补充Read页面的表格展示逻辑:

import streamlit as st
import pandas as pd
from homework_db import create_table, add_data, query_all_data


def main():
    st.title("Streamlit Exercise")
    menu = ['Insert', 'Read']
    choice = st.sidebar.selectbox("Menu", menu)
    create_table()
    if choice == 'Insert':
        st.subheader('Lets check Sentiment')
        line = st.text_area("Enter the sentence")
        # 拆分结果定义和前端展示,确保result为字符串
        result = "Positive"
        st.text(result)
        if st.button("Add Task"):
            add_data(line, result)
            st.success("Successfully added data in database")
    elif choice == 'Read':
        st.subheader('Datatable')
        # 读取所有数据并以表格展示
        all_data = query_all_data()
        df = pd.DataFrame(all_data, columns=["输入句子", "情感结果"])
        st.dataframe(df, use_container_width=True)


if __name__ == "__main__":
    main()

2. 补充数据库操作文件homework_db.py的查询方法

import sqlite3
    
conn = sqlite3.connect("homework2_db", check_same_thread=False)
c = conn.cursor()


## database-table-field-datatype##

def create_table():
    # 建议:表名不要用database(SQL关键字),可改为sentiment_data避免后续冲突
    c.execute('CREATE TABLE IF NOT EXISTS database(sentence TEXT, sentiment TEXT)')


def add_data(line, result):
    c.execute('INSERT INTO database(sentence,sentiment) VALUES(?,?)', (line, result))
    conn.commit()

# 新增查询所有数据的方法
def query_all_data():
    c.execute('SELECT * FROM database')
    return c.fetchall()
额外优化建议

将表名从database改为自定义名称(比如sentiment_records),database属于SQL保留关键字,后续可能触发其他语法异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:54:04