I was trying to create stream lit dashboard using a JSON file bu i was getting error. Is it possible to create dashboard from JSON data and dynamically render streamlit form. JSON_FILE = '''{ "project": "Prediction", "tasks": [ { "name":"Prediction Dashboard", "inputs": "Sol d", "inputs_two":"Sol d", "desc":{ "Solute_Smile": "Solute Sequence", "Solvent_smile": "Solvent Sequence", "Probability_Score": "(in Kcal/mol) :" } } ] }''' def load_data(data): data = json.loads(data) return data data = load_data(JSON_FILE) for i in range(len(data['tasks'])): title = st.title(data['tasks'][i]['name']) form = st.form(key="form_one") input = form.text_input(label = st.title(data['tasks'][i]['inputs'])) input_two = form.text_input(label = st.title(data['tasks'][i]['inputs_two']))
To upload files, please first save the app
"""
Generating forms dynamically
"""
import streamlit as st
def create_form_from_list(inputs):
st.title("Dynamic Form")
with st.form(key="dynamic_form"):
submitted_data = {}
for i, input_desc in enumerate(inputs):
input_type = input_desc.get("type")
label = input_desc.get("label", "")
if input_type == "text":
submitted_data[f"input_{i}"] = st.text_input(label=label, key=f"input_{i}")
elif input_type == "number":
submitted_data[f"input_{i}"] = st.number_input(label=label, key=f"input_{i}")
elif input_type == "selectbox":
options = input_desc.get("options", [])
submitted_data[f"input_{i}"] = st.selectbox(label=label, options=options, key=f"input_{i}")
submit_button = st.form_submit_button(label='Submit')
if submit_button:
st.write('Submitted data:', submitted_data)
inputs = [
{"label": "Name", "type": "text"},
{"label": "Age", "type": "number"},
{"label": "Email", "type": "text"},
{"label": "Favorite Color", "type": "selectbox", "options": ["Red", "Green", "Blue"]},
{"label": "Country", "type": "text"}
]
create_form_from_list(inputs)
Hi! I can help you with any questions about Streamlit and Python. What would you like to know?