猿问

如何用python形成嵌套式的json数据?

问题描述

数据库的字段:

uid,  year,   quarter,   score 1    2018    第一季度     4
 1    2018    第一季度     3
 1    2018    第三季度     3
 2    2017    第二季度     5

积分是按季度统计的,所以一个季度的积分需要求和。
第一层的key是uid,第二层的key是年份,第三层的key是季度,value是积分和

s={1:{2018:{1:7,3:3}},2:{2017:{2:5}}}

问题出现的环境背景及自己尝试过哪些方法

我用json,但是操作起来有难度。

用二维数组
a=[[1,2018,1,5],[1,2018,1,4],[2,2017,1,7],[2,2018,2,7]]

a[i][0]==a[j][0]&&a[i][1]==a[j][1]&&a[i][2]==a[j][2]

ss=sum(a[i][3])

操作二维数组

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

形成这种三层嵌套的json,或其他结构严整的格式。


达令说
浏览 1175回答 1
1回答

GCT1015

不试一下pandas么?In [1]: import pandas as pd In [2]: df = pd.DataFrame({'uid':[1,1,1,2],    ...:     'year':[2018,2018,2018,2017],    ...:     'quarter':['第一季度','第一季度','第三季度','第二季度'],    ...:     'score':[4,3,3,5]})    ...: In [3]: df Out[3]:   quarter  score  uid  year0    第一季度      4    1  20181    第一季度      3    1  20182    第三季度      3    1  20183    第二季度      5    2  2017至于要对相同季度,uid和年份汇总分数。可以用groupby的方法In [4]: df.groupby(['quarter','uid','year']).sum() Out[4]:                    quarter   uid  year  score 第一季度    1   2018      7第三季度    1   2018      3第二季度    2   2017      5
随时随地看视频慕课网APP
我要回答