为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

达令说 2018-07-19 08:37:16
问题描述数据库的字段: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,或其他结构严整的格式。
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

不试一下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


查看完整回答
反对 回复 2018-07-19
  • 1 回答
  • 0 关注
  • 1167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信