允许用户从 streamlit 的下拉列表中 select NULL

allow the user to select NULL from dropdownlist in streamlit

我有一个连接到 SQL 数据库的 streamlit 应用程序,其中有一个插入表单,以这种形式接受用户输入,我包括 selectbox 显示从数据库中提取的数据以允许用户 select 这些选项之一。

我想要的是允许 selectbox 中的用户到 select NULL 或留空。

问题是,一旦它显示从数据库中提取的数据,它不包含 NULL 并且 它添加第一个值作为默认值。

代码:

pattern = r"(?<=')[^,]+?(?=')"
query_loc =(
               r"select distinct location "
               r"from dbo.info"
               )    
rows_loc = cursor.execute(query_loc).fetchall()
rows_loc = re.findall(pattern, " ".join([str(s) for s in rows_loc]))

loc__stb =  st.selectbox("Select location",rows_loc)

如果我做对了,这个

query_loc =(
           r"select distinct location "
           r"from dbo.info"
           ) 

是填充 select 框的位置。而之所以没有空值,只是因为dbo.infotable.

中没有带空值的location值

如果是这样,您需要手动向 select 添加一个空值。所以,它需要看起来像那样

r"select ' ' location union all"
r"select distinct location "
r"from dbo.info"

虽然不确定 python-语法。请检查一下

UPD:您可以使用任何其他字符串代替 space 符号。