streamlit 中生成的多个相同的按键按钮

multiple same key button generated in streamlit

我一直在尝试使用 streamlit 创建一个网络仪表板。 运行段后的错误是,“There are multiple identical st.button widgets with the same generated key.

我在下面附上我的一部分代码

x = 1
while x > 0:
    if st.sidebar.button("1. Mouthshut.com"):
        analyse(df1)
    if st.sidebar.button("2. Bankbazaar"):
        analyse(df2)
    if st.sidebar.button("3. Creditkaro"):
        analyse(df3)
    if st.sidebar.button("4. Appgrooves"):
        analyse(df4)
    st.header("All the websites combined")
    analyse(df)
    if st.sidebar.button("Exit"):
        break

非常感谢您的帮助。 谢谢

根据文档:https://docs.streamlit.io/en/stable/api.html#streamlit.button

key (str) – An optional string to use as the unique key for the widget. If this is omitted, a key will be generated for the widget based on its content. Multiple widgets of the same type may not share the same key.

通过不提供 key 参数,所有小部件都具有相同的 None 键值。在每个 if 语句中为 key 关键字参数设置唯一值以修复错误。

x = 1

b1 = st.sidebar.button("1. Mouthshut.com", key="1")
b2 = st.sidebar.button("2. Bankbazaar", key="2")
b3 = st.sidebar.button("3. Creditkaro", key="3")
b4 = st.sidebar.button("4. Appgrooves", key="4")
b5 = st.sidebar.button("Exit", key="5")

while x > 0:
    if b1:
       # analyse(df1)
       pass
    if b2:
       # analyse(df2)
       pass
    if b3:
       # analyse(df3)
       pass
    if b4:
       # analyse(df4)
       pass

    st.header("All the websites combined")
    #analyse(df)

    if b5:
        break