前言技術棧Windows 10
Python 3.11.8
Gradio 5.6.0
Streamlit 1.40.1Gradio 格式化 json示例代碼import gradio as gr
import json
def format_json(input_json):
try:
json_obj = json.loads(input_json)
formatted_json = json.dumps(json_obj, indent=4)
# 返回兩個相同的值,一個用於更新輸入框,一個用於顯示在代碼框中
return formatted_json, formatted_json
except json.JSONDecodeError:
return "輸入的字符串不是有效的JSON格式。", ""
with gr.Blocks() as demo:
# 創建一個文本輸入框,讓用户輸入JSON字符串
json_input = gr.Textbox(lines=3, label="請輸入JSON字符串")
# 創建一個代碼框,用於高亮顯示格式化後的JSON
json_code = gr.Code(label="格式化後的JSON代碼", language="json")
# 創建一個按鈕,用户點擊後格式化JSON字符串
format_btn = gr.Button("格式化JSON")
# 綁定按鈕點擊事件,更新輸入框和代碼框的值
format_btn.click(fn=format_json, inputs=json_input, outputs=[json_input, json_code])
demo.launch()格式化前截圖
格式化後截圖
Streamlit 格式化 json示例代碼import streamlit as st
import json
def format_json(user_input):
try:
# 嘗試將輸入的字符串解析為JSON對象
json_obj = json.loads(user_input)
# 將JSON對象格式化為字符串
formatted_json = json.dumps(json_obj, indent=4)
return formatted_json
except json.JSONDecodeError:
# 如果輸入的字符串不是有效的JSON,返回錯誤信息
return "輸入的字符串不是有效的JSON格式。"
user_input = st.text_area("請輸入JSON字符串")
if st.button("格式化JSON"):
# 格式化輸入的JSON字符串
formatted_json = format_json(user_input)
# 輸出格式化後的 json
st.json(formatted_json)示例截圖
截至 Streamlit 1.40.1,Streamlit 似乎無法複用數據框輸出內容相關閲讀Gradio 官方文檔: