找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 92|回复: 9

[求助] 从mysql取数问题

2

主题

9

帖子

9

积分

贫民

积分
9
很白很白的小白 发表于 2020-9-7 16:10:37 | 显示全部楼层 |阅读模式
连接了数据库,取数。但是用fetchall,取出来的数包含的字段名
[ {'story': 34289, 'estimate': 0.0}, {'story': 26791, 'estimate': 0.0}, {'story': 26791, 'estimate': 8.0}]
取出的是类似于以上的dictionary的一个list
我想把story一样的项目做一个分类汇总.
就是类似得到:
story    estimate
34289   0
26791   8
请问该如何操作?先谢过了。
目前的代码是:

try:

    with connection.cursor() as cursor:
        sql = "select story, estimate FROM zt_task"
        cursor.execute(sql)
        result = cursor.fetchall()
        for row in result:
             print(result)
回复

使用道具 举报

0

主题

709

帖子

709

积分

圣骑士

积分
709
sheeboard 发表于 2020-9-7 19:34:36 | 显示全部楼层
本帖最后由 sheeboard 于 2020-9-7 19:44 编辑

用sqlalchemy 和pandas,就算不用orm,用pandas处理数据也很方便。
Screenshot from 2020-09-07 19-42-43.png
回复 支持 反对

使用道具 举报

25

主题

82

帖子

82

积分

新手

积分
82
银发的index 发表于 2020-9-7 22:26:47 | 显示全部楼层
和mysql没多大关系吧?

结果返回的是一个列表,列表的每一个元素都是一个字典。
那你就让列表中字典的键相同的项放到同一个列表里不就行了?
另外你这例子是什么意思?为什么26791的值是8不是0?
回复 支持 反对

使用道具 举报

2

主题

9

帖子

9

积分

贫民

积分
9
很白很白的小白  楼主| 发表于 2020-9-8 08:34:33 | 显示全部楼层
sheeboard 发表于 2020-9-7 19:34
用sqlalchemy 和pandas,就算不用orm,用pandas处理数据也很方便。

感谢,我学习一下
回复 支持 反对

使用道具 举报

2

主题

9

帖子

9

积分

贫民

积分
9
很白很白的小白  楼主| 发表于 2020-9-8 08:39:53 | 显示全部楼层
银发的index 发表于 2020-9-7 22:26
和mysql没多大关系吧?

结果返回的是一个列表,列表的每一个元素都是一个字典。

因为有两个26791,这个就像是ID,我需要把两个ID相同的合并,estimate就是需要合并的值
回复 支持 反对

使用道具 举报

25

主题

82

帖子

82

积分

新手

积分
82
银发的index 发表于 2020-9-8 08:46:18 | 显示全部楼层
很白很白的小白 发表于 2020-9-8 08:39
因为有两个26791,这个就像是ID,我需要把两个ID相同的合并,estimate就是需要合并的值 ...

值相加吗?
回复 支持 反对

使用道具 举报

0

主题

709

帖子

709

积分

圣骑士

积分
709
sheeboard 发表于 2020-9-8 09:35:00 | 显示全部楼层

分类汇总,见图,结果不光是加也可以是其他运算操作。其实sql语言可以直接得出结果,可能是新人不太了解复杂的sql语法,用orm通俗讲是把表映射成对象,列名映射成属性,转换的语法更为易读,但底层还是执行sql语句。
Screenshot from 2020-09-08 09-24-21.png
回复 支持 反对

使用道具 举报

2

主题

9

帖子

9

积分

贫民

积分
9
很白很白的小白  楼主| 发表于 2020-9-8 11:29:13 | 显示全部楼层

是的,就是合并相同的ID,把值相加
回复 支持 反对

使用道具 举报

2

主题

9

帖子

9

积分

贫民

积分
9
很白很白的小白  楼主| 发表于 2020-9-8 11:34:21 | 显示全部楼层
sheeboard 发表于 2020-9-8 09:35
分类汇总,见图,结果不光是加也可以是其他运算操作。其实sql语言可以直接得出结果,可能是新人不太了解 ...

嗯,SQL语句我也用了,现在通过SQL能够实现。
就是之前学了python,想看看能不能解决。

这个实例中的问题是一个{}里面有两个dictionary,而我要取到两个dictionary的值分别作为新的dictionary的key和value,然后根据key合并相加。
在没有library的情况下,完全不知道怎么操作。。。
回复 支持 反对

使用道具 举报

25

主题

82

帖子

82

积分

新手

积分
82
银发的index 发表于 2020-9-8 12:17:07 | 显示全部楼层
很白很白的小白 发表于 2020-9-8 11:34
嗯,SQL语句我也用了,现在通过SQL能够实现。
就是之前学了python,想看看能不能解决。

遍历一下不就行了,想想冒泡排序。
for i in range(len(l)):
     for j in range(i,len(l)):
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表