从大数据中快速生成报表/快速生成报表记录

1. 第一种 表头是 站点,时间,值1,值二形式
后台组数据类型,站点-》时间-》值
dic={} #组 时间=》值object 对
keys=["v1","v2","v3"]
for d in data:
    sid = d.get("sid")#站点或叫类目
    t = d.get("dt")
    if dic.get( t) is None:
        dic[t]={ sid:sid,t:t}  
    for k,v in d.items():
            if k in keys:
                dic[t][k] = v
rows=dic.values()
rows.sort(key=lambda x:x.get(t)) 
或者,属性值v1,v2,v3在其他几个集合数据源中,则循环其他数据源,组好dic模型既可
这里,其它把站点也看成了其中一个特殊的值,如果表头按站点(类目)再分,可进一步建二级字典sid={}
既 dic[t][sid]={}形式
-----------------------------------------------------------------------------------------
2. 第二种 表头是 站点 时间1,时间2,时间3.。。。形式,单一值在不同时间维度的展示
 
dic={}
for d in data:
    sid = d.get("sid")
    t = d.get("dt")
    if dic.get(sid) is None:
        dic[sid]={sid:sid}
    dic[sid][t]=d.get("v")
rows = dic.values()
rows.sort(key=lambda x:x.get("sid")
------------------------------------------------------------------------------------------------
#从上面可以看出,若以时间为行的主键,则建立时间数据字典 ,
若以站点为行的主键,则建立站点为主键的数据字典,
谁是主键,咱们就建它。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值