python如何调用数据库_用 python编程如何自动从数据库获取一个数据?

抛砖引玉~先讲一下我自己的解决方法,期待知乎python大神能给出其他更优的方案。

理解了一下问题,关键字是‘自动获取’和‘数据库’,但考虑到自动执行如果时刻保留当时的跑数结果,会占用机子的内存,其实根据我的观察,定时自动执行执行完之后是会清内存的,也保留不下来,所以我会把获取的数据保存到本地,下面讲一下我的方法。

所需的几个模块:

1、对应数据库的第三方库,mysql对应pymysql,postgre对应psycopg2,oracle对应cx_Oracle,其他我也还没遇到过

2、apscheduler,定时工作

3、pandas,数据框处理与保存

处理思路:

1、连接数据库,不同数据库python有对应的第三方库,用账号密码ip地址直接连接

2、执行sql语句,可以用pandas里面的read_sql_query,也可以用数据库第三方库的fetchall

3、获取结果,read_sql_query直接出来带列名的DataFrame,但fetchall这种还要另外处理成DataFrame,还有其他数据处理的,在这一步加上就是了

4、保存结果,pandas里面有一个to_pickle的函数,可以把数据序列化保存在本地文件,需要用到的时候再read_pickle反序列拿出来用,比不停地执行sql要方便

5、将以上四步所有的操作代码封装成函数,作为scheduler的其中一个作业,设置执行周期和执行时间,到点就会自动获取数据保存在本地文件了

以上是我在实际应用时候的解决方案,希望能给到你一点启发~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值