import streamlit as st import json # Load JSON Data json_path = "deepseek.json" with open(json_path, "r") as file: json_data = json.load(file) st.title("JSON Data Editor for Courses") # Function to convert string inputs to appropriate types def convert_type(value): if value.lower() == "true": return True elif value.lower() == "false": return False elif value.isdigit(): return int(value) try: return float(value) except ValueError: return value # Function to render nested dictionaries def edit_json(data, key_prefix=""): updated_data = {} for key, value in data.items(): full_key = f"{key_prefix}{key}" if isinstance(value, dict): st.subheader(key) updated_data[key] = edit_json(value, key_prefix=f"{full_key}.") elif isinstance(value, list): st.subheader(key) updated_list = [] for i, item in enumerate(value): if isinstance(item, dict): updated_list.append(edit_json(item, key_prefix=f"{full_key}[{i}].")) else: input_value = st.text_area(f"{full_key}[{i}]", value=str(item)) updated_list.append(convert_type(input_value)) updated_data[key] = updated_list else: input_value = st.text_input(full_key, value=str(value)) updated_data[key] = convert_type(input_value) return updated_data updated_json = edit_json(json_data) # Button to generate formatted updated JSON if st.button("Generate Updated JSON"): formatted_json = json.dumps(updated_json, indent=4, ensure_ascii=False).replace("True", "true").replace("False", "false") st.code(formatted_json, language="json")