“ __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 命令。”的主要内容,如果未能解决你的问题,请参考以下文章