| import streamlit as st
|
| import json
|
|
|
|
|
| json_path = "deepseek.json"
|
| with open(json_path, "r") as file:
|
| json_data = json.load(file)
|
|
|
| st.title("JSON Data Editor for Courses")
|
|
|
|
|
| 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
|
|
|
|
|
| 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)
|
|
|
|
|
| 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")
|
|
|