Возвращение ключей при выборе значения в selectbox в streamlit
есть датафрейм, который содержит в себе ключ и значений типо 1 яблоко 2 банан .... Я на основе этого дф создаю selectbox через streamlit в который передаю значения и при выборе чего-то в нем возвращаются значения, как-то можно сделать, чтобы возвращались ключи?
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Если вы в набор выбираемых значений передаете объекты целиком со всеми полями (а не просто строки), то и возвращается выбранный объект целиком, из него вытаскиваете ключ.
Минимальный пример:
import streamlit as st
from dataclasses import dataclass
@dataclass
class Row:
id: int
name: str
def __str__(self):
return self.name # В комбобоксе будут выводиться только названия без id
selected = st.selectbox("Select something:", (
Row(1, "Яблоко"),
Row(2, "Банан"),
Row(3, "Ананас"),
))
st.write(f"Selected: {repr(selected)}, id={selected.id}")
