“ __conform__() 不是有效的 Streamlit 命令。”

Posted

技术标签:

【中文标题】“ __conform__() 不是有效的 Streamlit 命令。”【英文标题】:" __conform__() is not a valid Streamlit command." 【发布时间】:2021-12-21 01:00:40 【问题描述】:

当我在 pycharm 中运行我的代码时,它显示:

__conform__() 不是有效的 Streamlit 命令。”

我正在尝试将输入和结果存储在 sqlite3 数据库中的我的 streamlit 应用程序中,并在同一个 streamlit 应用程序中以表格格式显示它。

主代码页:home_task.py

import streamlit as st
from homework_db import create_table, add_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 = st.text("Positive")
        if st.button("Add Task"):
            add_data(line, result)
            st.success("Successfully added data in database")
    elif choice == 'Read':
        st.subheader('Datatable')


if __name__ == "__main__":
    main()

另一个文件:homework_db.py:

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


## database-table-field-datatype##

def create_table():
    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()

一切似乎都很好,我关注了很多 youtube 视频进行 sql 查询,看起来是对的,但我不确定为什么 streamlit 不接受代码。

我还检查了 python 文档 (https://docs.python.org/3.6/library/sqlite3.html#letting-your-object-adapt-itself),但无法弄清楚这与我的问题有什么关系。

【问题讨论】:

【参考方案1】:

这是因为result 不是字符串而是Streamlit 对象:

>>> import streamlit
>>> result = st.text("Positive")
>>> type(result)
<class 'streamlit.delta_generator.DeltaGenerator'>

你需要做的是删除st.text():

    if choice == 'Insert':
        st.subheader('Lets check Sentiment')
        line = st.text_area("Enter the sentence")
        result = "Positive"  # no st.text()
        if st.button("Add Task"):
            add_data(line, result)
            st.success("Successfully added data in database")

【讨论】:

非常感谢 vinzee,你让我过得愉快.... @subham 如果它解决了您的问题,请考虑接受此答案。它可以帮助其他人找到具有公认答案的问题;)

以上是关于“ __conform__() 不是有效的 Streamlit 命令。”的主要内容,如果未能解决你的问题,请参考以下文章