前言

  • 技术栈

    Windows 10
    Python  3.11.8
    Gradio  5.6.0
    Streamlit 1.40.1

Gradio 格式化 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()
  • 格式化前截图
    image.png
  • 格式化后截图
    image.png

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)
  • 示例截图
    image.png
  • 截至 Streamlit 1.40.1,Streamlit 似乎无法复用数据框输出内容

相关阅读

本文出自 qbit snap

qbit
268 声望279 粉丝