使用streamlit创建一个产品指标与排名看板【3】定义JSON数据模型

1. 数据模型选型

streamlit其实是用于大数据可视化的一个框架,支持动态数据是它的关键特性。在应用初期是是用的mysql数据库,但是发现mysql数据在处理过程数据时的成本太高了,实际上如果是动态数据使用prometheus和grafana显然是更优选择。
这个应用是基于结果的看板,数据是静态数据,所以在数据库侧就演化成了表数据导出为json数据,应用将json转成streamlit所需的字典格式后通过dataframe表格显示。

  • json格式
[{
        "title": "产品A",
        "指标1": 456,
        "指标2": 789,
        "指标3": 234,
        "指标4": 567,
        "指标5": 890,
        "指标6": 123,
        "指标7": 456,
        "指标8": 789,
        "指标9": 234,
        "指标10": 567,
        "指标11": 890,
        "指标12": 123,
        "指标13": 456,
        "指标14": 789,
        "指标15": 234
    },
    {
        "title": "产品B",
        "指标1": 345,
        "指标2": 678,
        "指标3": 901,
        "指标4": 234,
        "指标5": 567,
        "指标6": 890,
        "指标7": 123,
        "指标8": 456,
        "指标9": 789,
        "指标10": 234,
        "指标11": 567,
        "指标12": 890,
        "指标13": 123,
        "指标14": 456,
        "指标15": 789
    }]

2. dataframe格式

import streamlit as st
import pandas as pd
import numpy as np

# 创建一个 3x3 的 DataFrame
data = {
    "Column A": [1, 2, 3],
    "Column B": [4, 5, 6],
    "Column C": [7, 8, 9]
}
df = pd.DataFrame(data)

# 在 Streamlit 中显示 DataFrame
st.title("按列显示的 3x3 表格")
st.dataframe(df)

运行结果:

Column A Column B Column C
0 1 4 7
1 2 5 8
2 3 6 9

这里的Column A就可以是我要显示的一个指标,这一列就是指标的值,或者根据值计算得到的积分。

posted @ 2025-02-20 21:36  iblk  阅读(62)  评论(0)    收藏  举报